Azure Cognitive Search の全文検索を重点的に学習するワークショップを公開

# はじめに
組織内に貯まっている大量な構造化・非構造化データから、新たな価値を見出すためのフルマネージド全文検索サービスである [Azure Cognitive Search](https://www.youtube.com/watch?v=9GcjFofXdd0) を使えば、誰でも簡単に AI 搭載検索エンジンを開発することができます。

今回紹介する [Azure Cognitive Search Workshop](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop) は、ノーコード×無料でナレッジマイニングを存分に体験することができるハンズオンコンテンツです。本コンテンツは Azure Cognitive Search の**検索機能を重点的に理解**することにフォーカスを当てているため、インフラや周辺サービスを学びたい方については[ナレッジマイニングソリューションアクセラレーター](https://github.com/nohanaga/azure-search-knowledge-mining)をおすすめします。

# コンテンツ

本コンテンツは演習1～5まで用意してあります。演習用のデータセットや検索用 UI、Postman コレクションセットを含んでいます。以下のリンクをクリックしてください。所要時間は目安です。

1. [ノーコード全文検索インデックスの作成](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop/blob/main/CreateIndex.md)　所要時間:50分
1. [Postman を使って REST API 開発](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop/blob/main/UsingPostman.md)　所要時間:30分
1. [フルテキスト検索](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop/blob/main/FullTextSearch.md)　所要時間:30分
1. [豊富な検索機能を使いこなす](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop/blob/main/AdvancedSearch.md)　所要時間:30分
1. [デバッグセッションを使ってカスタムスキルを追加する](https://github.com/nohanaga/Azure-Cognitive-Search-Workshop/blob/main/AddCustomSkill.md) (オプション)　所要時間:60分

# 演習1.ノーコード全文検索インデックスの作成
ノーコード、画面上の操作だけで簡単に全文検索インデックスを作成する手順をハンズオン形式でご紹介します。

![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/09c3a37d-551d-cd9e-6caf-574147fefe06.jpeg)


# 演習2. Postman を使って REST API 開発
REST API 開発がめちゃくちゃ捗ると人気の [Postman](https://www.postman.com/) というツールを使って REST API 経由でインデックス開発を行うための方法をハンズオン形式で紹介します。本ハンズオンを使うと演習1と全く同じ検索インデックスを**効率的**に構築できます。また、Azure Cognitive Search を効率的に操作できる API コレクション集をダウンロードできます。

![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/f0af2873-a902-00b9-bdde-474b25fae25e.jpeg)

# 演習3. フルテキスト検索
Azure Cognitive Search には、フリーテキスト検索から高度に指定されたクエリ パターンまで、さまざまなシナリオをサポートする豊富なクエリ言語が用意されています。この演習では、クエリ要求と作成できるクエリの種類について説明します。

この演習では、Azure Cognitive Search の豊富な検索クエリを練習問題を解きながら学んでいただくため、専用のクエリテスターを用意しました。[Simple Cognitive Search Tester](https://github.com/nohanaga/Simple-Cognitive-Search-Tester) は、今回のハンズオン用に用意したクエリテスト用の HTML ベース GUI です。最新のソースコードは[こちら](https://github.com/nohanaga/Simple-Cognitive-Search-Tester)のリポジトリを参照してください。

![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/72536bd3-960b-678f-ffc6-fe0296f1466c.jpeg)

# 演習4. 豊富な検索機能を使いこなす
この演習では、クエリーの選択(\$select)、ソート(\$orderby)、フィルター(\$filter)、ファセット(facet)、オートコンプリート、サジェスト機能について学びます。

[Simple Cognitive Search Tester](https://github.com/nohanaga/Simple-Cognitive-Search-Tester) のリクエスト/レスポンス JSON ビューワーを使ってリアルタイムでのデータ通信内容を確認できます。

![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/93208b45-aaf9-053d-77f0-67a1a5cb1385.jpeg)

例えばファセット フィルター(\$filter) シンタックスセレクターを使って、フィールド型ごとの文法を学びます。

![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/b8fe5387-80ab-129f-8543-4a4fd2849c42.jpeg)


# 演習5. デバッグセッションを使ってカスタムスキルを追加する(オプション)
Azure Cognitive Search の重要な機能であるカスタムスキルについて学びます。今回は新機能のデバッグセッション（Preview）を使って簡単にカスタムスキルを作成・編集できることを確認します。

![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/fd29726b-7b92-a657-edff-e4ffeb12d255.jpeg)


# 準備中　スコアリング プロファイルを使用して検索順位をカスタマイズする
Azure Cognitive Search では、スコアリング プロファイル機能を使って、検索結果の項目の順位付けをより細かく制御できます。この演習では、フィールドをスコアリング プロファイルを使ってブーストする方法を学びます。

# さいごに
より多くの人々が Azure Cognitive Search を使って簡単にナレッジマイニングをしていけるよう、さまざまな取り組みをしていこうと思います。