クイック スタート: Azure portal で検索インデックスを作成する
この Azure AI Search クイック スタートでは、データのインポート ウィザードと、Microsoft がホストする架空のホテル データで構成される組み込みのサンプル データ ソースを使用して、最初の検索インデックスを作成します。 ウィザードでは、コードなしの検索インデックスを作成して、興味深いクエリを数分以内に作成できるようにします。
ウィザードでは、検索サービスに複数のオブジェクト (検索可能なインデックス) が作成されますが、自動データ取得のためのインデクサーとデータ ソース接続も作成されます。 このクイックスタートの最後に、各オブジェクトを確認します。
Note
データのインポート ウィザードには、OCR、テキスト翻訳、およびこのクイックスタートでは説明されていないその他の AI エンリッチメントのオプションが含まれています。 AI エンリッチメントに焦点を当てた同様のチュートリアルについては、「クイック スタート: Azure portal でスキルセットを作成する」を参照してください。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure AI Search サービス (任意のレベルと任意のリージョン)。 サービスを作成するか、現在のサブスクリプションから既存のサービスを検索します。 このクイック スタート用には、無料のサービスを使用できます。
領域の確認
多くのユーザーが最初に利用するのは、無料版のサービスです。 Free レベルでは、インデックス、データ ソース、インデクサーがそれぞれ 3 つに限定されています。 十分な空き領域があることを確認してから開始してください。 このクイックスタートでは、各オブジェクトを 1 つずつ作成します。
サービスの [概要 > の使用状況 ] タブで、インデックス、インデクサー、データ ソースの数を確認します。
ウィザードを起動する
Azure アカウントを使用して Azure portal にサインインし、Azure AI Search サービスに移動します。
[概要] ページで、[データのインポート] を選択してウィザードを開始します。
インデックスの作成と読み込み
このセクションでは、4 つの手順でインデックスを作成して読み込みます。
データ ソースへの接続
ウィザードは、Microsoft が Azure Cosmos DB でホストするサンプル データへのデータ ソース接続を作成します。 このサンプル データは、内部接続経由で取得されます。 このクイックスタートを実行するために、独自の Azure Cosmos DB アカウントまたはソース ファイルは必要ありません。
[データに接続] で、[データ ソース] ドロップダウン リストを展開し、[サンプル] を選択します。
組み込みのサンプルの一覧で、[hotels-sample] を選択します。
[次: コグニティブ スキルを追加します (省略可能)] を選択して続行します。
コグニティブ スキルの構成をスキップする
データのインポート ウィザードでは、インデックス作成へのスキルセットと AI エンリッチメントの作成がサポートされています。
このクイックスタートでは、[コグニティブ スキルを追加します] タブの AI エンリッチメント構成オプションを無視します。
[スキップ先: 対象インデックスをカスタマイズします] を選択して続行します。
ヒント
AI エンリッチメントに関心がありますか? この クイック スタートを試す: Azure portal でスキルセットを作成する
インデックスの構成
ウィザードは、組み込みの hotels-sample インデックスのスキーマを推論します。 インデックスを構成するには、こちらの手順に従います。
システムによって生成された値を [インデックス名] (hotels-sample-index) と [キー] フィールド (HotelId) にそのまま使用します。
システムによって生成された値をすべてのフィールド属性にそのまま使用します。
重要
既存の hotels-sample データ ソースを使用してウィザードを再実行した場合、インデックスは既定の属性で構成されません。 以降のインポートでは、属性を手動で選択する必要があります。
[次: インデクサーの作成] を選択して続行します。
少なくとも、インデックスにはインデックス名とフィールドのコレクションが必要です。 フィールドのいずれかが、各ドキュメントを一意に識別するための "ドキュメント キー" としてマークされている必要があります。 値は常に文字列です。 ウィザードは、一意の文字列フィールドをスキャンし、キーに対して 1 つを選択します。
各フィールドには、名前、データ型、検索インデックス内のフィールドの使用方法を制御する "属性" があります。 チェック ボックスでは、次の属性を有効または無効にします。
- 取得可能: クエリ応答で返されるフィールド。
- フィルター可能: フィルター式を受け入れるフィールド。
- 並べ替え可能: orderby 式を受け入れるフィールド。
- ファセット可能: ファセット ナビゲーション構造で使用されるフィールド。
- 検索可能: フルテキスト検索で使用されるフィールド。 文字列は検索可能です。 数値フィールドとブール型フィールドは通常、検索対象外として指定されます。
文字列 は、取得可能かつ検索可能です。 整数には、[取得可能]、[フィルター可能]、[Sortable] (並び替え可能)、[ファセット可能] の属性が付いています。
属性はストレージに影響します。 フィルター可能な フィールドは追加のストレージを使用しますが 、取得可能 では使用されません。 詳細については、「属性と suggester がストレージに与える影響を示す例」を参照してください。
オートコンプリートまたは推奨クエリが必要な場合は、言語 アナライザー または Suggesters を指定します。
インデクサーを構成して実行する
最後の手順では、インデクサーを構成して実行します。 このオブジェクトによって、実行可能なプロセスが定義されます。 この手順では、データ ソース、インデックス、インデクサーが作成されます。
システムによって生成された値を [Indexer name] (インデクサー名) (hotels-sample-indexer) にそのまま使用します。
このクイックスタートでは、既定のオプションを使用して、インデクサーをすぐに 1 回実行します。 ホストされるデータは静的であるため、変更の追跡は有効になっていません。
[送信] を選択して、インデクサーを作成し、同時に実行します。
インデクサーの進行状況を監視する
ポータルでインデクサーまたはインデックスの作成を監視できます。 サービスの概要ページには、Azure AI Search サービスで作成されたリソースへのリンクがあります。
左側で、[インデクサー] を選択します。
Azure portal でページの結果が更新されるまでには数分かかる場合があります。 状態が [実行中] または [成功] の新しく作成されたインデクサーが一覧に表示されます。 一覧には、インデックスが作成されたドキュメントの数も表示されます。
検索インデックスの結果をチェックする
左側の [インデックス] を選択 します。
hotels-sample-index を選択 します。
Azure portal のページが更新されるまで待ちます。 ドキュメント数とストレージ サイズと共にインデックスが表示されます。
[フィールド] タブを選択して、インデックス スキーマを表示します。
書き込むクエリを把握できるように、フィルター可能または並べ替え可能なフィールドを確認します。
フィールドを追加または変更する
[フィールド] タブでは、名前、サポートされているデータ型、属性を持つフィールドの追加を使用して、新しいフィールドを作成できます。
既存のフィールドの変更は困難です。 既存のフィールドにはインデックスに物理的な表現があるため、コード内でも変更できません。 既存のフィールドを根本的に変更するには、元のフィールドを置き換える新しいフィールドを作成する必要があります。 スコアリング プロファイルや CORS オプションなどの他のコンストラクトは、いつでもインデックスに追加できます。
インデックスの設計時に何を編集できて何を編集できないかを明確に理解するために、インデックスの定義オプションを確認してください。 フィールド の一覧で淡色表示されているオプションは、編集することも削除することもできない値を示しています。
検索エクスプローラーを使用したクエリ実行
検索エクスプローラーでクエリを実行できる検索インデックスが作成されました。 Search エクスプローラーは、Search POST REST API に準拠する REST 呼び出しを送信します。 このツールでは、単純なクエリ構文と完全な Lucene クエリ構文がサポートされています。
[検索エクスプローラー] タブで、検索するテキストを入力します。
ミニマップを使用して、出力の非表示領域にすばやくジャンプします。
構文を指定するには、JSON ビューに切り替えます。
ホテル サンプル インデックスのクエリ例
次の例では、JSON ビューと 2023-11-01 REST API バージョンを想定しています。
フィルターの例
駐車場、タグ、改装日、評価、場所はフィルター可能です。
{
"search": "beach OR spa",
"select": "HotelId, HotelName, Description, Rating",
"count": true,
"top": 10,
"filter": "Rating gt 4"
}
ブール型フィルターは、既定では "true" と見なされます。
{
"search": "beach OR spa",
"select": "HotelId, HotelName, Description, Rating",
"count": true,
"top": 10,
"filter": "ParkingIncluded"
}
地理空間検索はフィルターベースです。 この関数は、geo.distance
指定されたLocation
geography'POINT
座標に基づいて位置データのすべての結果をフィルター処理します。 このクエリでは、緯度と経度の座標 -122.12 47.67
の 5 キロメートル以内にあるホテル ("レドモンド、ワシントン、米国") がシークされます。クエリには、ホテル名と住所の場所と共に一致項目の総数 &$count=true
が表示されます。
{
"search": "*",
"select": "HotelName, Address/City, Address/StateProvince",
"count": true,
"top": 10,
"filter": "geo.distance(Location, geography'POINT(-122.12 47.67)') le 5"
}
完全な Lucene 構文の例
既定の構文は 単純な構文ですが、あいまい検索または用語ブーストまたは正規表現が必要な場合は、完全な構文を 指定します。
{
"queryType": "full",
"search": "seatle~",
"select": "HotelId, HotelName,Address/City, Address/StateProvince",
"count": true
}
既定では、クエリ用語のスペルを間違うと (Seattle
に対する seatle
など)、通常の検索では一致する項目を返すことができません。 queryType=full
パラメーターは、チルダ ~
オペランドをサポートする完全な Lucene クエリ パーサーを呼び出します。 これらのパラメーターが存在する場合、クエリは指定したキーワードのあいまい検索を実行します。 このクエリでは、一致する結果と、キーワードに類似しているが完全に一致しない結果がシークされます。
少し時間を取って、インデックスに対してこれらのクエリ例をいくつか試してみてください。 クエリの詳細については、「Azure AI Search でのクエリ」を参照してください。
リソースをクリーンアップする
独自のサブスクリプションを使用する場合は、プロジェクトの最後に、作成したリソースがまだ必要かどうかを確認することをお勧めします。 リソースを実行したままにすると、お金がかかる場合があります。 リソースを個別に削除するか、リソース グループを削除してリソースのセット全体を削除することができます。
Azure portal の左側のペインにある [すべてのリソース] または [リソース グループ] で、お使いのサービスのリソースを検索および管理できます。
無料サービスを使用する場合は、インデックス、インデクサー、データ ソースがそれぞれ 3 つに制限されることに注意してください。 Azure portal で個別の項目を削除して、制限を超えないようにすることができます。
次のステップ
Azure portal のウィザードで、ブラウザーで動作するすぐに使用できる Web アプリを生成してみましょう。 このウィザードを使用して、このクイックスタートで作成した小さなインデックスで試すか、またはいずれかのビルトイン サンプル データ セットを使用して充実した検索環境を実現することができます。