0

Solr ファセット フィールドを使用していて、理解できないパフォーマンスの問題に遭遇しました。次の 2 つのクエリを検討してください。

  1. q=&facet.field=CONTENT&facet=true&facet.prefix=&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0
  2. q=単語&facet.field=CONTENT&facet=true&facet.prefix=_&facet.limit=10&facet.mincount=1&facet.method=enum&rows=0

facet.prefix唯一の違いは、最初のクエリが空であることです。

最初のクエリは約 20 秒 (QTime結果の 20000) 後に返されますが、2 番目のクエリは 80 ミリ秒 (80) しかかかりませんQTime。どうしてこれなの?

補足としてfacet.method=fc、クエリを「永久に」実行し、最終的には で失敗しorg.apache.solr.common.SolrException: Too many values for UnInvertedField faceting on field CONTENTます。

これはSolr 1.4です。

4

3 に答える 3

0

Solr サーバーを再起動した後、逆の順序で実行してみましたか?

通常、最初のクエリはより多くの時間を要し、次のクエリが前のクエリとより多くの共通点を持っている場合、キャッシュ ヒットが発生し、応答時間が驚くほど速くなります。

さらに、'enum' は、一意の用語の数が少ないファセット フィールドにより適していることに注意してください。

また、フィルターキャッシュを増やしてみてください。非常に大きな数にして、キャッシュヒット率を確認してください

 SOLR_DOMAIN:PORT/solr/#/collection1/plugins/cache?entry=fieldValueCache,filterCache
于 2013-10-18T16:31:13.567 に答える