2017-01-30 105 views
1

私はKibanaのelasticsearchクエリで複数のワイルドカードクエリの一致を試行しています。私はそれを理解できない。ワイルドカードクエリで検索するElasticSearch複数の文字列

基本的に私は、属性タイプ=「erreur」と、任意のドキュメントをしたい

と私は、フィールドdescr_courte上の文字列に一致するすべての文書「を設立*」または「java.langで。*」を除外したい

{ 
    "query": { 
    "bool": { 
     "must": { 
     "term": { 
      "type": "erreur" 
     } 
    }, 
     "must_not": { 
     "wildcard": { 
      "descr_courte": ["An established*", "java.lang.*"] 
     } 
     } 
    } 
    } 
} 

私は1つのワイルドカードクエリを置けば、それは罰金

{ 
"query": { 
    "bool": { 
     "must": { 
     "term": { 
      "type": "erreur" 
     } 
     }, 
     "must_not": { 
     "wildcard": { 
      "descr_courte": 
      "An established*" 
     } 
     } 
    } 
    } 
} 

の作品、私は取得エラー:

エラー:Elasticsearchへのリクエストが失敗しました:{"error_cause":[{"type": "illegal_state_exception"、 "reason": "1:454でSTART_ARRAYでテキストを取得できません"}、 "type": "search_phase_execution_exception"、 "reason": "すべてのシャード アイデアはありますか?

+1

です。どうしたのですか? – Mysterion

+0

あなたはそのクエリを試しましたか?アプリケーションでテストしましたか? –

+0

あなたはどのバージョンを使用していますか? – raam86

答えて

1

これを入れるのは別の節です。

{ 
    "query": { 
    "bool": { 
     "must": { 
     "term": { 
      "type": "erreur" 
     }, 
     "must_not": [ 
      { 
      "wildcard": { 
       "descr_courte": "An established*" 
      } 
      }, 
      { 
      "wildcard": { 
       "descr_courte": "java.lang.*" 
      } 
      } 
     ] 
     } 
    } 
    } 
} 
1

私の推測では、あなたがする必要があるので、あなたは、["An established*", "java.lang.*"]のようなワイルドカードクエリの配列を作ることができないということです。https://www.elastic.co/guide/en/elasticsearch/reference/5.1/query-dsl-regexp-query.html

別のオプションでは、正規表現のクエリについて

{ 
"query": { 
    "{ 
     "must": { 
     "term": { 
      "type": "erreur" 
     } 
     }, 
     "must_not": { 
     "regexp": { 
      "descr_courte": "(An established|java\.lang\.).*" 
     } 
     } 
    } 
    } 
} 

詳細情報ですクエリ文字列にクエリ演算子をNOT,ANDおよびORと組み合わせる

{ 
"query": { 
    "query_string" : { 
     "query" : "type:erreur AND NOT(descr_courte:An established* OR descr_courte:java.lang.*)" 
    } 
    } 
} 

詳細はhttps://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_wildcards

+0

フィルタを保存するときに「重複キー」という警告が表示され、最初の「ワイルドカード」句を破棄します – Dom

+0

@Dom boolクエリの回答を更新しました。 –

+0

ありがとうございますが、私はまだ重複したキーエラー "ワイルドカードの代わりに" must_not "を取得します。 – Dom

関連する問題