3

私は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ライブラリのため、「用語」ではなく「用語」でクエリが形成されます)。私はここで説明するように

+0

あなたは 'terms'ブールフィルターと' range' 1の間で同じクエリが、スワップポジションを試すことができます'must'節で? –

+0

お返事ありがとうございます!私はそれを試して、また、ブール値をブール値セクションの外に、geo_locationフィルタと同じレベルに置こうとしました...そして、結果は多かれ少なかれ同じでした。 –

+0

これらの高レイテンシ期間中のメモリ(ヒープ)の圧力はありますか?古いGCの数や期間が増えましたか? –

答えて

0

最後に、私は、クエリを実行し、問題を解決することができませんでした...

私は、関連分野のTRUE/FALSE値によると、2異なる文書タイプを作成し、これを解決しました。このアプローチ、ないCPUの増加、遅延のない問題に

...そしてElasticSearchは一度に複数のドキュメントタイプで検索することができるので、この分離は、自分のアプリケーションのコードに大きな問題を引き起こしていなかった;)

ので、今、私は両方のケースで同じクエリを実行するだけで、文書型ターゲットを変更:

POST /my_index/doc_type_with_true_value/_search 
POST /my_index/doc_type_with_false_value/_search 
{ 
    "from" : 0, 
    "size" : 10, 
    "query" : { 
    "filtered" : { 
     "query" : { 
     "match_all" : { } 
     }, 
     "filter" : { 
     "and" : { 
      "filters" : [ { 
      "bool" : { 
       "must" : [ { 
       "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" 
    } 
    } ] 
} 
関連する問題