1

Luke を使用して Lucene インデックスを表示しています。「ランク」という名前の列があります。それの実際の意味は何ですか?私の推測では、ランクは出現回数を意味し、ランク番号が大きいほど用語がより重要であることを意味します。しかし、それが全文検索であることは理解できません。「apple」を検索すると、「apple」のランクに関係なく、すべての「apple」インデックスが返されます。私は間違った理解をしていますか?そうでない場合、ランク列の実際の用途は何ですか?

インデックスを調べると、かなりの「ノイズ」があるように見えます。たとえば、文字「o」のランク番号が非常に高いなどです。このインデックスが悪いということですか?どうすれば直せますか?前もって感謝します。

4

1 に答える 1

1

「ランク」は、フィールド内の用語の頻度です。それがより重要であるという意味ではありません。実際、最も頻度の低い用語が、インデックスの中で最も重要な用語であることがよくあります。ただし、インデックスの最も頻繁に使用される用語を知ることは、分析やデバッグの目的で重要な場合があります (たとえば、この質問を参照してください)。

「o」のような用語がたくさんあるという事実は、インデックスが悪いという意味ではありません。インデックス作成に使用されるトークナイザーとアナライザーを確認します。一部のトークナイザーは、句読点の単語を取り除きます。一部のアナライザーは語幹を生成し、多くの場合、1 文字の用語を生成します。1 文字の用語の存在を説明できる理由はたくさんあります。

インデックスに望ましくない用語が多数含まれている場合は、インデックス時にストップ ワード フィルターを使用することを検討してください。Lucene はこのための機能を提供します。

于 2010-07-02T13:35:53.560 に答える