Lucene IndexSearch方法解释

Lucene IndexSearch方法解释

// 获取field的统计集合包括maxDoc,docCount,sumDocFreq等。
searcher.collectionStatistics(field);

// 通过query创建一个Weight对像。
searcher.createNormalizedWeight(query);

// 通过索引ID获取Document
searcher.doc(docID);

// 调用indexreader.document方法。指定Doc的FieldType读取类型。
searcher.doc(docID, fieldsToLoad);
searcher.doc(docID, fieldVisitor);

// 可以查看某个文档的得分的具体构成,通过Weight、Scorer演算得来。
searcher.explain(query, doc);

// 获得IndexReader
searcher.getIndexReader();

// 获得Similarity
searcher.getSimilarity();

// 获得 IndexreaderContext。
searcher.getTopReaderContext();

// 重写Query对象树
searcher.rewrite(original);

// 检索方法 参数Query, Collector 结果集
searcher.search(query, results);

// 此方法与上面的方法相同只不过内部创建了TopScoreDocCollector。
searcher.search(query, n);

// 检索方法增加个过滤对象,然后利用Query和Fileter创建FilteredQuery对像,执行scorer()方法时用DocIdSet进行过滤。
searcher.search(query, filter, results);
// 同上
searcher.search(query, filter, n);

// 检索方法增加个排序对象,然后利用Collector创建 FieldValueHitQueue队列进行排序。
searcher.search(query, n, sort);

// doDocScores 为true情况下每个命中的结果下都会被评分, //doMaxScore 为true情况下对最大分值的搜索结果进行评分
searcher.search(query, filter, n, sort, doDocScores, doMaxScore);

// 下面的检索方法与上面想同,只是增加了after ScoresDoc用于分页,after是前一页的最后一个ScoresDoc数据项目,
// 通过PagingTopScoreDocCollector中的getLeafCollector方法对after ScoresDoc得分进行过滤掉第一页数据,达到分页的效果,
// 对于使用条件可能有些苛刻因为要记录前一页的最后一个ScoresDoc,但我认为效率没有高我少,但ScoresDoc结果集会减少n-1页的数据。
searcher.searchAfter(after, query, n);
searcher.searchAfter(after, query, filter, n);
searcher.searchAfter(after, query, n, sort);
searcher.searchAfter(after, query, filter, n, sort);
searcher.searchAfter(after, query, filter, n, sort, doDocScores, doMaxScore);

// 设置similarity
searcher.setSimilarity(similarity);

// Term的统计,支持分布
searcher.termStatistics(term, context);

如果喜欢搜索技术请关注我的公众号吧
每天会持续更新搜索相关技术
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值