前回は用語クエリを一通り見てみました。
今回は全文検索クエリを一通り見ていきたいと思います。
今回もOpenSearchダッシュボードのサンプルデータ「E-Commerce」を対象にクエリを実行していきます。
公式ドキュメントはこちら
https://opensearch.org/docs/latest/query-dsl/full-text/
Match
指定された検索文字列を分析し、文字列の用語のいずれかに一致するドキュメントを返します。
https://opensearch.org/docs/latest/query-dsl/full-text/#match
とのことで、「検索文字列を分析し」というところが用語クエリと一番違うところになりそうです。
Multi Match
Matchで複数カラムを対象に検索する場合は「Multi Match」を使います。
「^(ハット)」を利用することで特定のフィールドに対して優先度を上げられるとのことでした。
Match Boolean prefix
説明を読んでもよくわからなかった・・・
指定された検索文字列を分析し、
https://opensearch.org/docs/latest/query-dsl/full-text/#matchbool
文字列の用語からクエリを作成します
なので、指定した用語を含みつつ、一番最後に指定した単語から始まる文字列を検索するのかなと思ったら、結果を見るとそうではなかった・・・ 使い方は要確認・・・
Match Phrase
指定された順序で正確なフレーズを含むドキュメントを検索するためのクエリです。
Match Phrase Prefix
Match Phraseのプリフィックス版です。もともとのMatch Boolean Prefixの使い方をきちんと理解していないため、こちらもクエリの効果はわからず・・・
Query String
クエリ文字列をもとに、条件式に基づいて検索を行います。
カラム指定がなかったのですが、全体に対して検索をかけてるんでしょうかね・・・?
Simple Query String
正規表現でクエリを指定するようです。
一般的な正規表現ではないので、独自の記述を覚える必要がありそうですね
Match All
すべてのデータを取得するクエリです。とりあえず登録されているデータを確認したいときに重宝しそうです。
(大量データに対して実行するときは注意が必要そうですね)
以上
ということで、ざっくり全文検索クエリを見てみました。
各クエリには指定できるオプションがあり、それらと組み合わせることでクエリをコントロールできるようです。
プリフィックス系のクエリは効果がよくわからなかったので、時間を取って再度調査したいですね