私のESインデックス/クラスタがスケールアップされているので(私は現在約20億ドルのドキュメントになります)、私はより重要なパフォーマンスの低下に気付きました。だから私は私の質問で私がそれらのいくつかのperfを絞ることができるかどうか見るために混乱し始めた。クエリよりもはるかに遅いElastic Searchフィルタ
私がこのようにしたとき、私はフィルタでブールクエリを使用したとき、私の結果に戻るのに約3.5〜4秒かかることに気付きました。クエリ
を使用してフィルタPOST /backup/entity/_search?routing=39cd0b95-efc3-4eee-93d1-93e6f5837d6b
{
"query": {"bool":{"should":[],"must":[{"match_all":{}}]}},
"filter": {
"bool": {
"must": [
{
"term": {
"serviceId": "39cd0b95-efc3-4eee-93d1-93e6f5837d6b"
}
},
{
"term": {
"subscriptionId": "3eb5021e-2f1d-4292-9fd5-95788ebfafa0"
}
},
{
"term": {
"subscriptionType": 0
}
},
{
"terms": {
"entityType": [
"4"
]
}
}
]
}
}
}
を使用して
:私は私のクエリで同じことを行う場合しかし、それはここで
10-20msが2つのクエリです以上のようなものです
POST /backup/entity/_search?routing=39cd0b95-efc3-4eee-93d1-93e6f5837d6b
{
"query": {"bool":{"should":[],"must":[
{
"term": {
"serviceId": "39cd0b95-efc3-4eee-93d1-93e6f5837d6b"
}
},
{
"term": {
"subscriptionId": "3eb5021e-2f1d-4292-9fd5-95788ebfafa0"
}
},
{
"term": {
"subscriptionType": 0
}
},
{
"terms": {
"entityType": [
"4"
]
}
}
]}}
}
私が言ったように、私がフィルターをまったく使用しない2番目の方法は、最初のクエリはほぼ4秒かかります。これは、ドキュメントが言っていることから完全に逆のようです。彼らは、フィルタは実際には非常に速くなければならず、クエリは長い時間がかかります。だから私はなぜここで正反対のことを見ているのですか?
私はインデックスマッピングで何かできますか?なぜこのようなことが起こっているのか誰かが考えているなら、私は提案を聞くのが大好きです。
おかげ
あなたがそれに続くものと最初の実行を比較している場合、それは関係ありませんです。最初のフィルタはフィルタ(個々のフィルタ)をキャッシュし、他のフィルタはキャッシュされたフィルタを使用します。 –
**同じ**クエリ(フィルタクエリではない)を複数回実行すると、同じ3-4秒の応答時間が得られますか? –
私は平均応答時間を約10回の呼び出しで比較しています –