Advertisement
Guest User

Untitled

a guest
Jan 13th, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.49 KB | None | 0 0
  1. import org.apache.lucene.analysis.standard.ClassicAnalyzer;
  2. import org.apache.lucene.document.*;
  3. import org.apache.lucene.index.*;
  4. import org.apache.lucene.queryparser.classic.ParseException;
  5. import org.apache.lucene.queryparser.classic.QueryParser;
  6. import org.apache.lucene.search.*;
  7. import org.apache.lucene.search.similarities.DefaultSimilarity;
  8. import org.apache.lucene.store.RAMDirectory;
  9. import org.apache.lucene.util.Version;
  10.  
  11. import java.io.IOException;
  12. import java.io.StringReader;
  13.  
  14. public class Test {
  15.  
  16.     static class MySim extends DefaultSimilarity {
  17.  
  18.         @Override
  19.         public float tf(float freq) {
  20.             return freq;
  21.         }
  22.  
  23.     }
  24.  
  25.     public static void main(String[] args) throws IOException, ParseException {
  26.         RAMDirectory idx = new RAMDirectory();
  27.         ClassicAnalyzer analyzer = new ClassicAnalyzer(Version.LUCENE_40, new StringReader(""));
  28.         MySim similarity = new MySim();
  29.  
  30.         IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_40, analyzer);
  31.         indexWriterConfig.setSimilarity(similarity);
  32.         IndexWriter writer = new IndexWriter(
  33.                 idx,
  34.                 indexWriterConfig
  35.         );
  36.         Document d1 = new Document();
  37.         d1.add(new StringField("id", "1", Field.Store.YES));
  38.         d1.add(new Field("field", "one two", Field.Store.YES, Field.Index.ANALYZED));
  39.         writer.addDocument(d1);
  40.  
  41.         Document d2 = new Document();
  42.         d2.add(new StringField("id", "2", Field.Store.YES));
  43.         d2.add(new Field("field", "one three", Field.Store.YES, Field.Index.ANALYZED));
  44.         writer.addDocument(d2);
  45.  
  46.         Document d3 = new Document();
  47.         d3.add(new StringField("id", "3", Field.Store.YES));
  48.         d3.add(new Field("field", "one blah blah blah one", Field.Store.YES, Field.Index.ANALYZED));
  49.         writer.addDocument(d3);
  50.  
  51.         writer.commit();
  52.  
  53.         IndexReader reader = DirectoryReader.open(idx);
  54.         IndexSearcher searcher = new IndexSearcher(reader);
  55.         searcher.setSimilarity(similarity);
  56.  
  57.         Query q1 = new QueryParser(Version.LUCENE_40, "field", analyzer).parse("field:one");
  58.         TopDocs td1 = searcher.search(q1, 3);
  59.         System.out.println(td1.totalHits);
  60.         for (ScoreDoc scoreDoc : td1.scoreDocs) {
  61.             Document document = reader.document(scoreDoc.doc);
  62.             System.out.println(searcher.explain(q1, scoreDoc.doc));
  63.             System.out.println(document.get("id"));
  64.         }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement