Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.apache.lucene.analysis.standard.ClassicAnalyzer;
- import org.apache.lucene.document.*;
- import org.apache.lucene.index.*;
- import org.apache.lucene.queryparser.classic.ParseException;
- import org.apache.lucene.queryparser.classic.QueryParser;
- import org.apache.lucene.search.*;
- import org.apache.lucene.search.similarities.DefaultSimilarity;
- import org.apache.lucene.store.RAMDirectory;
- import org.apache.lucene.util.Version;
- import java.io.IOException;
- import java.io.StringReader;
- public class Test {
- static class MySim extends DefaultSimilarity {
- @Override
- public float tf(float freq) {
- return freq;
- }
- }
- public static void main(String[] args) throws IOException, ParseException {
- RAMDirectory idx = new RAMDirectory();
- ClassicAnalyzer analyzer = new ClassicAnalyzer(Version.LUCENE_40, new StringReader(""));
- MySim similarity = new MySim();
- IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_40, analyzer);
- indexWriterConfig.setSimilarity(similarity);
- IndexWriter writer = new IndexWriter(
- idx,
- indexWriterConfig
- );
- Document d1 = new Document();
- d1.add(new StringField("id", "1", Field.Store.YES));
- d1.add(new Field("field", "one two", Field.Store.YES, Field.Index.ANALYZED));
- writer.addDocument(d1);
- Document d2 = new Document();
- d2.add(new StringField("id", "2", Field.Store.YES));
- d2.add(new Field("field", "one three", Field.Store.YES, Field.Index.ANALYZED));
- writer.addDocument(d2);
- Document d3 = new Document();
- d3.add(new StringField("id", "3", Field.Store.YES));
- d3.add(new Field("field", "one blah blah blah one", Field.Store.YES, Field.Index.ANALYZED));
- writer.addDocument(d3);
- writer.commit();
- IndexReader reader = DirectoryReader.open(idx);
- IndexSearcher searcher = new IndexSearcher(reader);
- searcher.setSimilarity(similarity);
- Query q1 = new QueryParser(Version.LUCENE_40, "field", analyzer).parse("field:one");
- TopDocs td1 = searcher.search(q1, 3);
- System.out.println(td1.totalHits);
- for (ScoreDoc scoreDoc : td1.scoreDocs) {
- Document document = reader.document(scoreDoc.doc);
- System.out.println(searcher.explain(q1, scoreDoc.doc));
- System.out.println(document.get("id"));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement