Lucene学习总结-扩展查询

来源:互联网 发布:网络卖服装营销策划书 编辑:程序博客网 时间:2024/06/06 08:37
custom sort method:
Sort sort = new Sort(new SortField("location",new DistanceComparatorSource(10, 10)));TopFieldDocs docs = searcher.search(query, null, 3, sort);FieldDoc fieldDoc = (FieldDoc) docs.scoreDocs[0];Document document = searcher.doc(fieldDoc.doc);


custom HitCollector:

public void testCollecting() throws Exception {TermQuery query = new TermQuery(new Term("contents", "junit"));IndexSearcher searcher = new IndexSearcher(TestUtil.getBookIndexDirectory());BookLinkCollector collector = new BookLinkCollector(searcher);searcher.search(query, collector);Map linkMap = collector.getLinks();TopDocs hits = searcher.search(query, 10);TestUtil.dumpHits(searcher, hits);searcher.close();

Extending QueryParser:getFieldQuery,getFuzzyQuery,getPrefixQuery,getRangeQuery,getBooleanQuery,getWildcardQuery

custom filter:

SpecialsAccessor accessor = new TestSpecialsAccessor(isbns);Filter filter = new SpecialsFilter(accessor);WildcardQuery educationBooks = // #2new WildcardQuery(new Term("category", "*education*")); // #2FilteredQuery edBooksOnSpecial = // #2new FilteredQuery(educationBooks, filter); // #2TermQuery logoBooks = // #3new TermQuery(new Term("subject", "logo")); // #3BooleanQuery logoOrEdBooks = new BooleanQuery(); // #4logoOrEdBooks.add(logoBooks, BooleanClause.Occur.SHOULD); // #4logoOrEdBooks.add(edBooksOnSpecial, BooleanClause.Occur.SHOULD); // #4TopDocs hits = searcher.search(logoOrEdBooks, 10);

Payloads:相当于对文档分类,DefaultSimilarity,PayloadHelper,

http://www.cnblogs.com/ibook360/archive/2011/10/27/2217537.html

doc1.add(new Field("category", "foods|0.984 shopping|0.503", Field.Store.YES, Field.Index.ANALYZED));  String queries = "category:foods content:egg";  searcher.setSimilarity(new PayloadSimilarity()); payloadSearcher.display(payloadSearcher.search(queries), start, end);