simple_query_string
接頭辞演算子*
とあいまい値を同じ単語で使用~N
すると、接頭辞検索が無効になっているように見えます。
{
"query": {
"simple_query_string": {
"query": "Abcd*~2",
"fields": ["name"]
}
}
}
あいまいさを 0 に設定すると、プレフィックスが無効になり、クエリがAbcd*~0
プレフィックス検索もあいまいさもなくなることは明らかです。
これはドキュメントに記載されていないため、間違っているかどうかはわかりません。
私はもう試した:
- 演算子の順序を入れ替える:
Abcd~2*
--_explain
これではあいまいなバリエーションが導入されますが、前置演算子は省略されます - 優先順位に括弧を使用:
(Abcd*)~2
--_explain
これでは接頭辞を使用しますが、あいまい演算子1を省略します - 単語の複製:
(Abcd* Abcd~2)
-- これは機能します。両方の効果の構成ではなく、両方のクエリの再結合を明らかに示しています2。
1~2
句がない (引用符がない) ため、この場合は SLOP 演算子として解釈されるべきではないと想定しています。
2これらの効果を合成すると、可能なバリエーションが多すぎる可能性があることは理解できます。ファジーは 50 のバリエーションを追加し、それらのそれぞれについてプレフィックス検索を行います。