2017-12-15 12 views
-1

私はこのような文書を持っている:contains-all-of、contains-one-of、contains-exactlyおよびnot-containsの操作を含むElasticsearchクエリを書くにはどうすればよいですか?

{ 
'body': '', 
'date': '', 
} 

私はこれらの条件で文書を取得したい:[ 'A'、 'B'、 'C​​'] :

  • 体はすべてが含まれています
  • の一つを含む:[ 'D'、 'E'、 'F']
  • および正確これらのフレーズ含ま:[ 'GH I'、 'JKのL']
  • なく含まれた:[ 'M' 、 'n']

このクエリはどのように作成できますか?

+0

あなたはこのポストに答えを受けるため、さらにいくつかの質問をしてきました。あなたは寛大に提供されている下のヘルプを見て、それがあなたのユースケースのために働いたかどうかを見てみましょうか?回答を受け入れるか回答することは必須ではありませんが、作成されたヘルプに回答者が回答していない場合は、コミュニティはありません。ありがとう! – halfer

答えて

1

boolクエリを使用する必要があります。 「これらのフレーズが正確に含まれている」ということは、本体フィールドにどのアナライザーを適用したかによって決まります。例えば

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-bool-query.html

{ 
    "query": { 
    "bool": { 
     "must": [ 
     {"match": {"body": "a"}}, 
     {"match": {"body": "b"}}, 
     {"match": {"body": "c"}}, 
     {"match_phrase": {"body": "g h i"}}, 
     {"match_phrase": {"body": "j k l"}} 
     ], 
     "should": [ 
     {"match": {"body": "d"}}, 
     {"match": {"body": "e"}}, 
     {"match": {"body": "f"}} 
     ], 
     "must_not": [ 
     {"match": {"body": "m"}}, 
     {"match": {"body": "n"}} 
     ] 
    } 
    } 
} 
関連する問題