とフレーズでワイルドカードを使用して、私はいくつかの値で始まる用語を一致させることができます:ここワイルドカード演算子を使用してElasticsearchクエリ文字列クエリ
{
"query": {
"query_string" : {
"query" : "subject:cell*"
}
}
}
subject
フィールドがkeyword
フィールドである(非分析しました)。これはうまくいきますが、 "cellular contr"で始まる用語を見つける方法を理解することはできません。二重引用符を試しても期待通りの結果が得られませんでした。
{
"query": {
"query_string" : {
"query" : "subject:\"cellular contr*\""
}
}
}
注:フレーズ検索は、完全一致でも正常に動作し、ワイルドカードでは正しく動作しません。私の推測では、星は二重引用符の中でワイルドカード演算子として解釈されないということです。あれは正しいですか?また、ワイルドカード演算子をフレーズで使用する他の方法はありますか?
注:照会はユーザー入力から行われるため、Query String Queryを使用する必要があります。
(私は正規表現に頼る可能性が知っているが、したくない)
デフォルト値は 'false'なので、明示的にfalseに設定しても違いはありません。しかし、私はちょうどそのために試してみました。それは "(subject:cellular)OR(contr *)"と解釈されています。私は 'analyze_wildcard'と' auto_generate_phrase_queries'を成功させることなく試してみました。(ドキュメントはちょっと薄いですが) – danmichaelo