私はAWS ElasticSearchサービス(1.5.2)を使用しており、問題なく100回以上リクエストを受信しています。ブール値フィールドのフィルタは待ち時間とCPUを増加させます
ほとんどすべてのクエリには、ジオフィルタ、フルテキストフィルタ、整数フィルタがあります。 しかし、私は問題があります。ブール項フィルタ。ブールフィルタが追加されると
{
"from" : 0,
"size" : 10,
"query" : {
"filtered" : {
"query" : {
"match_all" : { }
},
"filter" : {
"and" : {
"filters" : [ {
"bool" : {
"must" : [ {
"terms" : {
"my_boolean_field" : [ false ]
}
},
{
"range" : {
"_timestamp" : {
"from" : null,
"to" : "2016-05-04T15:12:00Z",
"include_lower" : true,
"include_upper" : false
}
}
} ]
}
}, {
"geo_distance" : {
"rounded_location" : [ -8.42, 42.24 ],
"distance" : "300000m",
"distance_type" : "plane",
"optimize_bbox" : "indexed"
}
} ]
}
}
}
},
"sort" : [ {
"_geo_distance" : {
"rounded_location" : [ {
"lat" : 42.24,
"lon" : -8.42
} ],
"unit" : "m"
}
}, {
"date" : {
"order" : "desc"
}
}, {
"price" : {
"order" : "asc"
}
} ]
}
は、10〜30%及び10〜15分の間ElasticSearch増加の全てのノードのCPUはしばらくの待ち時間後20から400msのに平均待ち時間が増加し、正常な数に戻りますCPUはそうしない。
ブール値のフィールドが正しくマップされ、検索可能です。この問題に関するヒントは誰にでもありますか? (私が使用している公式Javaライブラリのため、「用語」ではなく「用語」でクエリが形成されます)。私はここで説明するように
あなたは 'terms'ブールフィルターと' range' 1の間で同じクエリが、スワップポジションを試すことができます'must'節で? –
お返事ありがとうございます!私はそれを試して、また、ブール値をブール値セクションの外に、geo_locationフィルタと同じレベルに置こうとしました...そして、結果は多かれ少なかれ同じでした。 –
これらの高レイテンシ期間中のメモリ(ヒープ)の圧力はありますか?古いGCの数や期間が増えましたか? –