5

アプリケーションでファセットを使用して solr 検索を使用しています。私の使用例は、datadir 内のインデックス ファイルが変化し続けるような方法です。

問題は、特定のフィールドに基づいてファセットする場合です。以前にデータディレクトリにあったインデックスから値を取得します(現在は存在しません)。ただし、それらは値 0 で返されます。以前のインデックスの値が保持され、まったく新しい検索中に返される場所がわかりません。

単純にカウント 0 のファセットをスキップすることはできますが、これが私のスケーラビリティを著しく損なう可能性があることを理解しています。以前のサーチャーからのファセットを含めないための指針はありますか?

[編集 1] : 現在使用している回避策はfacet.mincount=1、URL に a を追加することです。それでも、これは私のパフォーマンスを損なう可能性があると思います。

4

2 に答える 2

3

コメント オプションが見つかりませんでした。投票するのに十分な評判がありません。私はまったく同じ問題を抱えています。Solr 4.2 でアトミック更新を使用しています。

ここで説明を見つけました:http://collab.sakaiproject.org/pipermail/oae-dev/2011-November/000693.html

抜粋:

多値フィールド (タグなど) のファセットを効率的に処理するために、Solr は「反転されていないインデックス」(単に「インデックス」と呼ばれると思われるかもしれませんが、それはさらにややこしいと思います) を作成します。これは、内部ドキュメント ID をそれらに含まれる用語のリスト。このデータ構造からファセットを計算するには、結果セット内のすべてのドキュメントを調べて、反転されていないインデックスに含まれる用語を検索し、それらをすべてのドキュメントの集計に追加するだけです。

ただし、ここで見られるゼロカウントの原因となる卑劣な最適化があります。ドキュメントの 5% 以上に出現する用語については、Solr はそれらを非反転インデックスに含めず (それらを除外すると、メモリのサイズを抑えるのに役立つと思います)、代わりに通常のLucene インデックスに対するクエリ。「一般的な」用語のセットは結果セットに固有のものではなく、特定の結果セットにこれらの用語がすべて含まれているとは限らないため、ゼロのバックカウントを取得できます。

古いインデックス値からではなく、ドキュメントの 5% 以上に存在する用語である可能性がありますか?

于 2013-07-12T16:50:23.657 に答える