Lucene反向索引访问计数

时间:2012-02-02 09:58:45

标签: lucene inverted-index

在Lucene,我想了解倒排索引中的访问次数。

也许,Lucene有这样的倒排索引,

猫狗 ----- -----
d01 d02
d02 d01
d03 d03
----- -----

如果我使用查询“猫狗”,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;

谢谢。

1 个答案:

答案 0 :(得分:0)

渐近地,如果有p个匹配项,并且您找到了最高k,则时间将为p log k。所以在你的情况下,6 log 2 = 6。 (当然,如此小的数字,这个公式给出了荒谬的结果)。

有关详细信息,请参阅this

请注意,“前两名”并不代表“前两名”,而是“两名得分最高”。根据示例中的权重,Lucene可能会忽略d03。