Solr 3.4を実行しており、90,000ドキュメント程度の比較的小さなインデックスがあります。これらのドキュメントは複数の論理ソースに分割されているため、各検索には特定のソースに適用されるフィルタークエリがあります。例:
?q=<query>&fq=source:<source>
ここsourceで、は古典的な文字列フィールドです。edismaxを使用しており、デフォルトの検索フィールドテキストがあります。
現在q=*、実行にかかる時間は。よりも平均20倍長くなっていますq=*:*。違いは非常に顕著で、 100ミリ秒*:*と*最大3500ミリ秒かかります。ドキュメントセット内の一般的な単語(すべてのドキュメントのほぼ50%に一致)を検索すると、200ミリ秒未満の結果が返されます。
debugQueryがオンになっているクエリを見ると、*がに解析され、がに解析されているDisjunctionMaxQuery((text:*))こと*:*がわかりMatchAllDocsQuery(*:*)ます。これは理にかなっていますが、それでもこの規模の減速(ドキュメントの50%に一致するものよりも2000%の減速)を説明しているとは思えません。
これを引き起こしている可能性がありますか?微調整できるものはありますか?