はじめに
「Azure AI Searchを使ってみたいけど、データってどうやって入れるの...?」
「インデックスとかインデクサーとか、用語が多くてよくわからない!」
こんな悩みを持っていませんか?この記事では、Azure AI Searchでのデータ管理について、初心者の方にもわかりやすく解説していきます。
この記事は3部構成です:
- Part 1(本記事): データの全体像とインポート方法
- Part 2: インデックスとベクターストアの詳細
- Part 3: インデクサーとナレッジストア
まずは、Azure AI Searchでのデータの流れを理解するところから始めましょう!
まずは言葉の整理から
技術記事でよくある「なんとなく分かった気になるけど、結局何?」を防ぐために、まずは基本用語をしっかり定義しておきましょう。
Azure AI Searchって何?
ひとことで言うと: Microsoftが提供するクラウド上の検索エンジンサービスです。
もう少し詳しく言うと: Webサイトやアプリに高度な検索機能を簡単に組み込めるサービスのことです。Googleみたいな検索機能を、自分のアプリに追加できるイメージですね。
検索インデックスとは?
よくある誤解: 「データベースのようなもの?」
→ 半分正解ですが、もっと検索に特化したものです!
正確な定義: 検索可能な形式で整理されたデータのコレクションです。
例えばこんな感じ:
- 図書館の本 → 検索インデックスは図書館のカード目録のようなもの
- ネットショップの商品データ → 検索インデックスはすぐに検索できるように整理された商品リスト
構成要素を分解すると:
- スキーマ: どんな項目(フィールド)があるかの設計図
- ドキュメント: 実際のデータの1件1件
- フィールド: 各ドキュメントが持つ項目(例: タイトル、説明文、価格など)
インデクサーって何?
わかりやすく言うと: データを自動で取ってきて、インデックスに入れてくれるお助けロボットです。
もう少し詳しく: データソース(例: Azure BlobストレージやSQLデータベース)から、定期的にデータを読み取って、検索インデックスに自動でアップロードしてくれる機能のことです。
Azure AI Searchでのデータの流れ: 全体像
Azure AI Searchにデータを入れる方法は、大きく分けて2つあります:
1. プッシュモデル: 自分でデータを送る
イメージ: あなたが荷物を宅配便で送るように、自分でデータを送り込む方法
特徴:
- 自分でコントロールできる
- リアルタイムで更新できる
- どんなデータソースでも使える
こんな時に使う:
- 在庫データのようにリアルタイムで変わるデータ
- 特殊なデータソースから取ってくる場合
- 独自の処理を加えてから入れたい場合
2. プルモデル: 自動でデータを取ってきてもらう
イメージ: 定期便のように、自動でデータを取りに来てもらう方法
特徴:
- 設定すれば自動で動く
- スケジュール実行ができる
- 変更があった部分だけ更新してくれる
こんな時に使う:
- 定期的に更新されるデータ
- Azureのストレージサービスにあるデータ
- AIで内容を分析したい場合
プッシュモデル: 詳しく見てみよう
プッシュモデルの仕組み
プッシュモデルは、まるでメールを送るようにデータをインデックスに送信します。
送信方法は主に4種類:
-
upload (アップロード): 新しいドキュメントを追加、既にあれば更新
- 例: 新しい商品を追加する、既存商品の情報を最新化する
-
merge (マージ): 既存ドキュメントの一部だけ更新
- 例: 商品の価格だけ変更したい時
-
mergeOrUpload: 既存ドキュメントがあれば更新、なければ新規追加
- 例: とりあえず送っておけば、新規か更新かを自動判定してくれる
-
delete (削除): ドキュメントを削除
- 例: 販売終了した商品を削除
プッシュモデルの使い方
実際には、プログラミング言語のSDKやREST APIを使ってデータを送ります。
言語別のSDK:
- C# (.NET)
- Python
- Java
- JavaScript/TypeScript
注意点: Azure Portalからは直接プッシュできません。コードを書く必要があります。
プッシュモデルのメリット
-
データソースを選ばない: どこからでもデータを送れます
- オンプレミスのデータベース
- 他社のクラウドサービス
- 自作のシステム
-
リアルタイム更新: 待ち時間なしで即座に反映
- ECサイトの在庫管理
- ニュースサイトの最新記事
-
細かいコントロール: 送るタイミングを完全に制御できる
- ビジネスロジックに合わせた更新
- エラーハンドリングを自分で実装
プッシュモデルの注意点
- 一度に送れるのは最大1,000件または16MBまで
- プログラミングの知識が必要
- エラー処理を自分で実装する必要がある
プルモデル: 詳しく見てみよう
プルモデルの仕組み
プルモデルでは、「インデクサー」という機能がデータを自動で取ってきてくれます。
流れはこんな感じ:
-
データソース接続: どこからデータを取るか設定
- Azure Blob Storage
- Azure SQL Database
- Azure Cosmos DB
- などなど...
-
インデックス定義: データをどう保存するか設計
-
インデクサー作成: データソースとインデックスを紐付け
-
実行: 自動または手動でデータ取り込み開始!
プルモデルで使えるデータソース
Azure AI Searchは、以下のようなAzureのサービスから直接データを取得できます:
ファイルストレージ系:
- Azure Blob Storage (一番よく使われる!)
- Azure Data Lake Storage Gen2
- Azure Files
データベース系:
- Azure SQL Database
- Azure Cosmos DB
- Azure Table Storage
その他:
- SharePoint Online
- OneLake
プルモデルの便利機能
1. 変更検出 (差分更新)
何が便利?: 全部のデータを毎回読み直すんじゃなくて、変わった部分だけ更新してくれる!
イメージ:
- 1万件のドキュメントがある
- 10件だけ更新された
- → インデクサーは10件だけを更新(超効率的!)
2. スケジュール実行
何が便利?: 定期的に自動でデータを取り込んでくれる!
設定例:
- 毎朝5時に実行
- 1時間ごとに実行
- 週1回、月曜日の夜に実行
最短で5分間隔での実行も可能です。
3. AIエンリッチメント
これがすごい機能!
インデクサーには「スキルセット」という機能を追加できます。これを使うと:
-
画像からテキストを抽出 (OCR機能)
- 例: スキャンしたPDFから文字を読み取る
-
言語を自動検出
- 例: 英語、日本語、中国語を自動判別
-
キーフレーズ抽出
- 例: 文章から重要なキーワードを自動抽出
-
感情分析
- 例: レビュー文がポジティブかネガティブか判定
-
ベクトル化 (埋め込み生成)
- 例: テキストを数値ベクトルに変換して、意味的な類似検索を可能に
プルモデルのメリット
-
設定が簡単: Azure Portalから全部できる
- ウィザード形式でポチポチ設定
- コードを書かなくても OK
-
自動化が楽: 一度設定すればずっと動く
- 深夜に自動実行
- 手間いらず
-
AI機能が使える: スキルセットで高度な分析
- 画像解析
- 自然言語処理
プルモデルの注意点
- 対応しているデータソースでないと使えない
- 5分間隔より速い更新は難しい
- スキルセットを使うと追加料金がかかる場合がある
どっちを選べばいい? プッシュ vs プル
プッシュモデルを選ぶべきケース
✅ リアルタイム性が重要
- 例: ECサイトの在庫数、金融情報
✅ 独自のデータソース
- 例: 自社開発のシステム、他社API
✅ 複雑な変換処理が必要
- 例: 独自のビジネスロジックを適用
プルモデルを選ぶべきケース
✅ Azureストレージにデータがある
- 例: Blob Storage、SQL Database
✅ 定期更新で十分
- 例: 日次バッチ処理、夜間更新
✅ AI分析を使いたい
- 例: 画像からのテキスト抽出、キーワード抽出
両方使うこともできる!
実は、1つのインデックスに対して、プッシュとプルを併用することも可能です。
例えば:
- 基本データはインデクサーで定期取り込み (プル)
- 緊急の更新はAPIで即座に反映 (プッシュ)
実際に動作確認してみよう
データがちゃんと入ったかどうかは、Azure Portalの「Search エクスプローラー」で簡単に確認できます。
Search エクスプローラーとは?
ひとことで言うと: ブラウザ上で検索をテストできるツールです。
できること:
- コードを書かずに検索を試せる
- データが正しく入っているか確認できる
- 検索結果がJSON形式で見られる
使い方の例
{
"search": "*",
"filter": "HotelId eq '50'"
}
このクエリは「HotelIdが50のホテルを検索」という意味です。
Part 1のまとめ
ここまでで、Azure AI Searchでのデータの流れと、2つの取り込み方法を理解できましたね。
押さえておきたいポイント:
📌 データの入れ方は2種類
- プッシュモデル: 自分で送る(リアルタイム向き)
- プルモデル: 自動で取ってきてもらう(定期更新向き)
📌 プッシュモデルの特徴
- どんなデータソースでも使える
- リアルタイム更新が可能
- プログラミングが必要
📌 プルモデルの特徴
- Azureデータソース専用
- 自動化が簡単
- AI機能が使える
📌 両方を併用することも可能
次のPart 2では:
-
検索インデックスの詳細設計
- フィールドの種類と属性
- スキーマの設計方法
-
ベクターインデックス
- ベクトル検索とは?
- RAG(検索拡張生成)への活用
-
実践的な設計Tips
基礎がわかったところで、いよいよインデックスの詳細設計に進みましょう!
次のステップ:Azure AI Searchのデータ管理完全ガイド - Part 2: インデックスとベクターストアを理解しよう
この記事が役に立ったら、ぜひ「いいね」をお願いします!質問やフィードバックもお待ちしています。