在Lucene中,我想知道倒排索引中的访问次数。
也许Lucene有这样的倒排索引,
猫狗
d01 d02
d02 d01
d03 d03
如果我使用查询"cat dog",Lucene将连续访问倒排索引。然后我问前2个结果,只有4次访问,Lucene将返回d01,d02。在这种情况下,我想知道访问时间(在本例中为"4")。
目前,我是这样使用Lucene的。
Query q = new QueryParser(Version.LUCENE_35, "title", analyzer).parse(querystr);
int hitsPerPage = 10;
IndexSearcher searcher = new IndexSearcher(index, true);
TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, true);
searcher.search(q, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;谢谢。
发布于 2012-02-03 06:21:49
渐近地,如果存在p匹配,并且您正在查找顶部的k,则时间将是p log k。所以在你的情况下,6 log 2 = 6。(当然,对于如此小的数字,这个公式会给出可笑的结果)。
有关详细信息,请参阅this。
请注意,“前两名”并不意味着“前两名”,而是“两个最高分”。根据示例中的权重,Lucene可能会忽略d03。
https://stackoverflow.com/questions/9110294
复制相似问题