2

Luceneでは、転置インデックスのアクセス数について知りたいです。

たぶん、Luceneはこのような転置インデックスを持っています、

猫の犬
------------
d01 d02
d02 d01
d03 d03
----- -----

クエリ「catdog」を使用すると、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;

ありがとうございました。

4

1 に答える 1

0

漸近的に、p一致があり、トップを見つけているk場合、時間は になりますp log k。あなたの場合、6 log 2 = 6. (もちろん、このような小さな数では、この式はばかげた結果になります)。

詳細については、これを参照してください。

「トップ 2」は「最初の 2 つ」ではなく、「最高得点 2 つ」を意味することに注意してください。例の重みによっては、Lucene が d03 を無視する可能性があります。

于 2012-02-02T22:21:49.393 に答える