前回のエントリで全文検索クエリを一通り見てみました。
全文検索クエリでは様々なオプションが指定できるため、今回はどのようなオプションが指定できるのか見ていきたいと思います。
ワイルドカードオプション
allow_leading_wildcard
*と?を検索語の最初の文字として許可するか?
利用できるのは「query_string」のみみたいですね。
analyze_wildcard
OpenSearchがワイルドカード用語の分析を試みるか? 一部で解析がうまくいかな用語があるため、デフォルトではfalseとのこと。
こちらは「query_string」「simple_query_string」で利用可能みたいです
allow_leading_wildcardオプションを切り替えるとこんな感じです。オプションをfalseにして、検索語の先頭に*を利用するとエラーになっちゃうんですね


あいまいクエリオプション
fuzziness
用語が値と一致したと判定する際に、ある単語を別の単語に変換するために必要な文字操作回数とのこと
例えば「とまと」を「とまれ」に変換すると1
fuzzy_transpositions
fuzzinessの操作で「隣接する文字の入れ替え操作を1とするか」を指定します。
trueの場合、「wind」-> 「wnid」の操作は1
falseの場合「wind」->「wnid」の操作は2
で判定されます
fuzzy_max_expansions
ファジー クエリは、 で指定された距離内にある多数の一致用語に「展開」します
とのことで、説明だけだとよくわからないパターンでした・・・
その他の高度なオプション
その他の高度なオプションが以下に紹介されています
https://opensearch.org/docs/latest/query-dsl/full-text/#other-advanced-options
ひとまず以上
最後はざっくりになってしまいましたが、オプションについては以上です
クエリごとに利用できたり、出来なかったりするオプションがありますが、公式ページで利用できるオプションが紹介されているので、そちらを参照されたほうが良いですね・・・
そうなると、このブログの意味がなくなってしまいますが・・・