2017-01-23 2 views
0
{"query": 
    {"filtered": 
    {"filter": 
     {"or": 
     [{"term":{"id_admin":255}},{"term":{"id_user":255}}] 
     }, 
    "query": 
     {"bool": 
     {"must": 
      [{"match":{"striped":"sentence"}}] 
     } 
     } 
    } 
    } 
} 

クエリid_admin又はid_user 255とstriped =文であるエントリを返します。このElasticsearchクエリを最適化できますか?

2.3.1バージョンを使用します。

このクエリは、さらに最適化できますか?

答えて

0

あなたはES 2.3.1を使用している場合は、次のように、このクエリを記述するための正しい方法は次のとおりです。

平均して
{ 
    "query": { 
    "bool": { 
     "minimum_should_match": 1, 
     "should": [ 
     { 
      "term": { 
      "id_admin": 255 
      } 
     }, 
     { 
      "term": { 
      "id_user": 255 
      } 
     } 
     ], 
     "must": [ 
     { 
      "match": { 
      "striped": "sentence" 
      } 
     } 
     ] 
    } 
    } 
} 
+0

、同じ環境で、私のクエリはあなたよりも高速です。 – GSG

+1

私が言っているのは、あなたが使っているDSL構文([非推奨])(https://www.elastic.co/guide/en/elasticsearch/reference/2.0/breaking_20_query_dsl_changes.html#_literal_filtered_literal_query_and_literal_query_literal_filter_deprecated)です。これは、ES 2.x以降で使用するはずのものと同じものです。パフォーマンスに関しては、あなたがあなたのスピードが速いと主張するために、あるいはあなたがカールか頭を使って一回限りのコールをしているかセンスし、 'テイク '時間をチェックしている場合には、あまり意味がない)? – Val

+0

これで運がいい? – Val

関連する問題