Cognitivet Serachとは
Cognitivet Serachとは
Cognitive Serachは情報検索に必要な機能群を提供するサービスのこと。
機能は大きく分けて三つあります。
インデックス
アナライザー
インデクサー
クエリ(検索)
この三つです。
ざっくり役割を説明しておくと、
「アナライザーによって検索可能な情報形式に変換後、インデクサーによってインデックス化されて、インデックスに置かれる。ユーザーは検索したい情報をリクエストすることによってクエリがそれをキャッチして情報をインデックスから探します。」
です。
インデックス
![](https://assets.st-note.com/img/1705814500244-0aNcXWyc5s.png?width=1200)
検索対象のドキュメントを保管するもので、ドキュメントの形式はjson形式となってます。
アナライザー
![](https://assets.st-note.com/img/1705814429702-QrFhLwllZd.png?width=1200)
アナライザーとはインデックス作成とクエリ実行時に利用するフルテキスト検索用の文字列処理モジュールのことです。
重要ではないワード、句読点の削除
フレーズやハイフンで繋がれた単語の分割
活用形を原型に変換
またデフォルトはApach Lucene標準アナライザーを使用
組み込み等のカスタムアナライザーも利用可能
インデクサー
![](https://assets.st-note.com/img/1705814467764-6NF15DJSZ1.png?width=1200)
インデクサーとは、データソースにある検索可能になった情報をインデックス化するための機能のことです。
データソースに関しては
Azure Storage
Azure CosmosDB
Azure DB for MySQL
Azure SQL
SharePoint
これらが使用できます。
その機能を実行する際には二パターンあります。
インデクサーは変更を自動で読み取る(プッシュ型)
定期的に読み取るか(プル型)
プッシュ型のインデクサー
プッシュ型のインデクサーはデータが挿入、削除、更新されるたびに検知して実行します。
プッシュ型の設定方法はAPIを利用して設定を行います。
API、、、とは。。。
と思った方。私も最初はそうでした。
APIとは変更をキャッチして、声を上げて知らせてくれる人だと思っておくとよいかもしれません。
プル型のインデクサー
時間をあらかじめ設定しておき、データの挿入、削除、更新があった場合に検知して実行します。
プル型の場合にはAzureポータルから設定を行います。
クエリ(検索)
![](https://assets.st-note.com/img/1705814524444-U4rOP8FvWg.png?width=1200)
フルテキスト検索
ベクトル検索
セマンティック検索
この三つが文章検索の手法として存在しており、Cognitive Searchはベクトル検索の手法の一つとされております。