2017-11-29 5 views
1

これは弾性検索で、ある条件を満たすか他の条件を満たすレコードをフィルタリングするために使用したクエリです。弾性検索でNOTとORを同時に使用する

{ 
    "query": 
    { 
     "query_string": 
     { 
      "query": "(NOT col1: \"val1\") OR (col2: val2)", 
      "analyze_wildcard": true 
}}} 

問題は、情報を抽出するためにnodejsに同等の構文を書くことができないことです。それはあなたがすべき配列の両方の条件を行いますOR条件

答えて

0

あると私たちは誰もが一致した場合は、結果のレコードを取得する、として、あなたはmust matchmust_not match

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "bool": { 
      "must_not": { 
       "match": { 
       "col1": { 
        "query": "val1", 
        "type": "phrase" 
       } 
       } 
      } 
      } 
     }, 
     { 
      "match": { 
      "col2": { 
       "query": "val2", 
       "type": "phrase" 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
を使用する必要があります、must_notここで使用カント
関連する問題