7

Solrを使用していて、フィールド「グループ」をファセットしたいと思います。

「グループ」はユーザーによって作成されるため、「グループ」には膨大な数の値が存在する可能性があります。

  • Solrはこのようなユースケースを処理できますか?または、Solrは、値の数が多いファセットフィールドにはあまり適していませんか?

  • facet.limitを設定して、ファセットフィールドに返される値の数を制限できることを理解しています。これは私の場合に役立ちますか?facet.limitを50に設定した場合、検索で「グループ」に一致する値が100,000あるとします。これにより、クエリが高速化されますか、Solrがすべてのファセット値を処理およびソートする必要があるため、クエリが低速になります。上位50個を返しますか?

  • 多数のファセット値に対してSolrを調整する方法に関するヒントはありますか?

ありがとう。

4

2 に答える 2

7

1.4 以降、solr はデフォルトで単純なファセット数を使用するため、多数の値を持つファセットを適切に処理します。(facet.method はデフォルトで「fc」です)。

1.4 より前は、solr はフィルター ベースのファセット メソッド (enum) を使用していました。この方法では、ファセット値ごとに 1 つのフィルターが必要です。

facet.limit については、行/オフセットを使用して結果スペースをナビゲートするように、(facet.offset と組み合わせて) ファセット スペースをナビゲートする方法と考えてください。したがって、10 ~ 50 の値が適切です。

行/オフセットと同様に、Solr の性質により、オフセットが大きくなると facet.limit/facet.offset のパフォーマンスが低下することが予想されますが、妥当な境界内に収まっていれば問題ありません。

デフォルトでは、solr は頻度の高いファセットを最初に出力します。

総括する:

  • Solr 1.4 を使用する

  • facet.method が 'fc' であることを確認してください (とにかく、これがデフォルトです)。

  • facet.limit/facet.offset を使用してファセット空間をナビゲートします。

于 2010-05-25T12:00:18.873 に答える
1

キャッシュ ファセット関連のパラメーターを有効にすることを誤解しないでください (さまざまなキャッシュ サイズを試して、システムに適した値を選択してください)。

   <filterCache class="solr.FastLRUCache" size="4096" initialSize="4096" autowarmCount="4096"/>
<queryResultCache class="solr.LRUCache" size="5000" initialSize="5000" autowarmCount="5000"/>
于 2010-05-28T05:19:23.650 に答える