次の方法で共有


クイック スタート: Azure portal で検索インデックスを作成する

Important

データのインポート (新しい) ウィザードでは、以前はデータのインポート ウィザードでのみ使用できたキーワード検索がサポートされるようになりました。 検索エクスペリエンスを向上させるために、新しいウィザードをお勧めします。 ウィザードの統合方法の詳細については、 Azure portal でのデータのインポート ウィザードに関するページを参照してください。

このクイック スタートでは、データの インポート (新しい) ウィザードと架空のホテルに関するサンプル データを使用して、最初の検索インデックスを作成します。 ウィザードではインデックスを作成するためのコードは必要なく、数分で興味深いクエリを記述できます。

ウィザードは、検索可能な インデックスインデクサー、データ ソース接続を含む複数のオブジェクトを検索サービスに作成して、データの自動取得を行います。 このクイックスタートの最後に、各オブジェクトを確認します。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます

  • Azure AI Search Service。 サービスを作成 するか 、現在の サブスクリプションで既存のサービスを検索します。 このクイック スタート用には、無料のサービスを使用できます。

  • Azure Storage アカウント。 標準パフォーマンス (汎用 v2) アカウントで、Azure Blob Storage または Azure Data Lake Storage Gen2 (階層型名前空間を持つストレージ アカウント) を使用します。 帯域幅の課金を回避するには、Azure AI Search と同じリージョンを使用します。

ネットワーク アクセスを確認する

このクイック スタートでは、Azure portal ノードがアクセスできるように、上記のすべてのリソースでパブリック アクセスが有効になっている必要があります。 そうでないと、ウィザードは失敗します。 ウィザードの実行後、セキュリティのために統合コンポーネントでファイアウォールとプライベート エンドポイントを有効にすることができます。 詳細については、インポート ウィザードでの安全な接続に関するページを参照してください。

領域の確認

多くのお客様は、3 つのインデックス、3 つのインデクサー、3 つのデータ ソースに制限されている無料の検索サービスから始めます。 このクイック スタートでは、それぞれ 1 つを作成するため、開始する前に、追加のオブジェクト用のスペースがあることを確認してください。

[ 概要 ] ページで、[ 使用状況 ] を選択して、現在使用しているインデックス、インデクサー、データ ソースの数を確認します。

Azure portal の Azure AI 検索サービス インスタンスの [概要] ページのスクリーンショット。インデックス、インデクサー、データ ソースの数が表示されています。

サンプル データの準備

このクイック スタートでは、架空のホテル 50 件のメタデータを含む JSON ドキュメントを使用しますが、独自のファイルを使用することもできます。

このクイック スタートのサンプル データを準備するには:

  1. Azure portal にサインインし、Azure Storage アカウントを選択します。

  2. 左側のウィンドウで、[ データ ストレージ>Containers] を選択します。

  3. hotels-sample という名前のコンテナーを作成します。

  4. サンプル JSON ドキュメントをコンテナーにアップロードします。

ウィザードを起動する

このクイック スタートのウィザードを開始するには:

  1. Azure portal にサインインし、検索サービスを選択します。

  2. [ 概要 ] ページで、[ データのインポート (新規)] を選択します。

    Azure portal で新しいインポート ウィザードを開く方法を示すスクリーンショット。

  3. データ ソース ( Azure Blob Storage または Azure Data Lake Storage Gen2) を選択します。

    ウィザードでデータ ソースを選択するためのオプションのスクリーンショット。

  4. キーワード検索を選択します

    Azure portal のキーワード検索タイルのスクリーンショット。

検索インデックスを作成して読み込む

このセクションでは、5 つの手順でインデックスを作成して読み込みます。

データ ソースに接続する

Azure AI Search では、コンテンツインジェストとインデックス作成のためにデータ ソースへの接続が必要です。 この場合、データ ソースは Azure Storage アカウントです。

サンプル データに接続するには:

  1. [ データへの接続 ] ページで、Azure サブスクリプションを選択します。

  2. ストレージ アカウントを選択し、 hotels-sample コンテナーを選択します。

  3. 解析モードの JSON 配列 を選択します。

    Azure portal の [データへの接続] ページのスクリーンショット。

  4. [次へ] を選択します。

スキルの構成をスキップする

このウィザードでは、インデックス作成中のスキルセットの作成と AI エンリッチメント がサポートされます。このクイック スタートでは扱い得ありません。 [次へ] を選択して、この手順をスキップします。

ヒント

AI エンリッチメントに焦点を当てた同様のチュートリアルについては、「 クイック スタート: Azure portal でスキルセットを作成する」を参照してください。

インデックスの構成

サンプル ホテル データの構造と内容に基づいて、ウィザードは検索インデックスのスキーマを推論します。

インデックスを構成するには:

  1. 次の各フィールドについて、[フィールドの 構成] を選択し、それぞれの属性を設定します。

    Fields Attributes
    HotelId キー、取得可能、フィルター可能、並べ替え可能、検索可能
    HotelNameCategory 取得可能、フィルター可能、並べ替え可能、検索可能
    DescriptionDescription_fr [取得可能]
    Tags 取得可能、フィルター可能、検索可能
    ParkingIncludedIsDeletedLastRenovationDateRatingLocation 取得可能、フィルター可能、並べ替え可能
    Address.StreetAddressRooms.DescriptionRooms.Description_fr 取得可能、検索可能
    Address.CityAddress.StateProvinceAddress.PostalCodeAddress.CountryRooms.TypeRooms.BedOptionsRooms.Tags 取得可能、フィルター可能、絞り込み可能、検索可能
    Rooms.BaseRateRooms.SleepsCountRooms.SmokingAllowed 取得可能、フィルター可能、ファセット化可能

    インデックス内のフィールドの属性を構成する方法を示す GIF。

  2. AzureSearch_DocumentKey フィールドを削除します。

  3. [次へ] を選択します。

少なくとも、インデックスには名前とフィールドのコレクションが必要です。 ウィザードは、一意の文字列フィールドをスキャンし、1 つをドキュメント キーとしてマークし、インデックス内の各ドキュメントを一意に識別します。

各フィールドには、名前、データ型、およびインデックスでのフィールドの使用方法を制御する属性があります。 次の属性を有効または無効にすることができます。

特性 説明 適用可能なデータ型
[取得可能] クエリ応答で返されるフィールド。 文字列と整数
フィルターの適用 フィルター式を指定できるフィールド。 整数
並べ替え可能 orderby 式を指定できるフィールド。 整数
ファセット可能 ファセット ナビゲーション構造で使用されるフィールド。 整数
検索可能 フルテキスト検索で使用されるフィールド。 文字列は検索可能ですが、多くの場合、数値フィールドとブール型フィールドは検索不可としてマークされます。 ストリングス

属性は、さまざまな方法でストレージに影響します。 たとえば、フィルター可能なフィールドは追加のストレージを使用しますが、取得可能なフィールドは使用しません。 詳細については、「属性とサジェスターがストレージに与える影響を示す例」を参照してください。

オートコンプリートやクエリ候補が必要な場合は、言語アナライザーまたはサジェスターを指定できます。

詳細設定をスキップする

このウィザードでは、セマンティック ランク付けとインデックスのスケジュール設定の詳細設定を提供します。このクイック スタートでは扱い得ありません。 [次へ] を選択して、この手順をスキップします。

オブジェクトを確認して作成する

最後の手順では、構成を確認し、検索サービスでインデックス、インデクサー、データ ソースを作成します。 インデクサーは、データ ソースからコンテンツを抽出してインデックスに読み込むプロセスを自動化し、キーワード検索を有効にします。

オブジェクトを確認して作成するには:

  1. オブジェクト名のプレフィックスを hotels-sample に変更します。

  2. オブジェクトの構成を確認します。

    Azure portal のオブジェクト構成ページのスクリーンショット。

    ウィザードの手順をスキップしたため、AI エンリッチメント、セマンティック ランカー、インデクサーのスケジュール設定は無効になるか、既定値に設定されます。

  3. オブジェクトを同時に作成し、インデクサーを実行するには、[ 作成 ] を選択します。

Important

データのインポート ウィザードは最終的に非推奨になります。 その機能のほとんどは、データの インポート (新しい) ウィザードで使用できます。これは、ほとんどの検索シナリオにお勧めします。 詳細については、 Azure portal でのデータのインポート ウィザードに関するページを参照してください。

このクイック スタートでは、データの インポート ウィザードと架空のホテル データの組み込みサンプルを使用して、最初の検索インデックスを作成します。 ウィザードではインデックスを作成するためのコードは必要なく、数分で興味深いクエリを記述できます。

ウィザードは、検索可能な インデックスインデクサー、データ ソース接続を含む複数のオブジェクトを検索サービスに作成して、データの自動取得を行います。 このクイックスタートの最後に、各オブジェクトを確認します。

前提条件

ネットワーク アクセスを確認する

組み込みのサンプル データを使用するこのクイック スタートでは、検索サービスに ネットワーク アクセス制御がないことを確認します。 Azure portal コントローラーは、パブリック エンドポイントを使用して、Microsoft がホストするデータ ソースからデータとメタデータを取得します。 詳細については、インポート ウィザードでの安全な接続に関するページを参照してください。

領域の確認

多くのお客様は、3 つのインデックス、3 つのインデクサー、3 つのデータ ソースに制限されている無料の検索サービスから始めます。 このクイック スタートでは、それぞれ 1 つを作成するため、開始する前に、追加のオブジェクト用のスペースがあることを確認してください。

[ 概要 ] ページで、[ 使用状況 ] を選択して、現在使用しているインデックス、インデクサー、データ ソースの数を確認します。

Azure portal の Azure AI 検索サービス インスタンスの [概要] ページのスクリーンショット。インデックス、インデクサー、データ ソースの数が表示されています。

ウィザードを起動する

このクイック スタートのウィザードを開始するには:

  1. Azure portal にサインインし、検索サービスを選択します。

  2. [ 概要 ] ページで、[ データのインポート] を選択します。

    Azure portal でデータ インポート ウィザードを開く方法を示すスクリーンショット。

検索インデックスを作成して読み込む

このセクションでは、4 つの手順でインデックスを作成して読み込みます。

データ ソースに接続する

ウィザードは、Microsoft が Azure Cosmos DB でホストするサンプル データへのデータ ソース接続を作成します。 サンプル データはパブリック エンドポイントを介してアクセスされるため、この手順に Azure Cosmos DB アカウントまたはソース ファイルは必要ありません。

サンプル データに接続するには:

  1. [ データへの接続 ] ページで、[ データ ソース ] ドロップダウン リストを選択し、[ サンプル] を選択します。

  2. 組み込みサンプルの一覧から hotels-sample を選択します。

  3. [次へ: コグニティブ スキルの追加 ]を選択します (省略可能)。

    データのインポート ウィザードで hotels サンプル データ ソースを選択する方法を示すスクリーンショット。

スキルの構成をスキップする

このウィザードでは、インデックス作成中のスキルセットの作成と AI エンリッチメント がサポートされます。このクイック スタートでは扱い得ありません。 [ 次へ: ターゲット インデックスをカスタマイズする] を選択して、この手順をスキップします。

ヒント

AI エンリッチメントに焦点を当てた同様のチュートリアルについては、「 クイック スタート: Azure portal でスキルセットを作成する」を参照してください。

インデックスの構成

サンプル ホテル データの構造と内容に基づいて、ウィザードは検索インデックスのスキーマを推論します。

インデックスを構成するには:

  1. インデックス名 (hotels-sample-index) とキー (HotelId) のシステム生成値を受け入れます。

  2. システムによって生成された値をすべてのフィールド属性にそのまま使用します。

  3. [次へ: インデクサーの作成] を選択します。

    データのインポート ウィザードで hotels サンプル データ ソースに対して生成されたインデックス定義を示すスクリーンショット。

少なくとも、インデックスには名前とフィールドのコレクションが必要です。 ウィザードは、一意の文字列フィールドをスキャンし、1 つをドキュメント キーとしてマークし、インデックス内の各ドキュメントを一意に識別します。

各フィールドには、名前、データ型、およびインデックスでのフィールドの使用方法を制御する属性があります。 チェックボックスを使用して、次の属性を有効または無効にすることができます。

特性 説明 適用可能なデータ型
[取得可能] クエリ応答で返されるフィールド。 文字列と整数
フィルターの適用 フィルター式を指定できるフィールド。 整数
並べ替え可能 orderby 式を指定できるフィールド。 整数
ファセット可能 ファセット ナビゲーション構造で使用されるフィールド。 整数
検索可能 フルテキスト検索で使用されるフィールド。 文字列は検索可能ですが、多くの場合、数値フィールドとブール型フィールドは検索不可としてマークされます。 ストリングス

属性は、さまざまな方法でストレージに影響します。 たとえば、フィルター可能なフィールドは追加のストレージを使用しますが、取得可能なフィールドは使用しません。 詳細については、「属性とサジェスターがストレージに与える影響を示す例」を参照してください。

オートコンプリートやクエリ候補が必要な場合は、言語アナライザーまたはサジェスターを指定できます。

インデクサーを構成して実行する

最後の手順では、インデクサーを構成して実行します。これによって、データ ソースからコンテンツを抽出してインデックスに読み込むプロセスが自動化されます。 この手順では、検索サービスにデータ ソースオブジェクトとインデックス オブジェクトも作成します。

インデクサーを構成して実行するには:

  1. インデクサー名 (hotels-sample-indexer) のシステム生成値を受け入れます。

  2. インデクサーを 1 回、すぐに実行するには、既定のスケジュール オプションをそのまま使用します。 サンプル データは静的であるため、変更の追跡を有効にすることはできません。

  3. [送信] を選択して、インデクサーを同時に作成して実行します。

    データのインポート ウィザードで hotels サンプル データ ソースのインデクサーを構成する方法を示すスクリーンショット。

インデクサーの進行状況を監視する

Azure portal でインデクサーとインデックスの作成を監視できます。 [概要] ページには、検索サービスで作成されたオブジェクトへのリンクが表示されます。

インデクサーの進行状況を監視するには:

  1. 左側のウィンドウで、[ インデクサー] を選択します。

  2. リストの中で hotels-sample-indexer を見つけてください。

    Azure portal で進行中のインデクサーの作成を示すスクリーンショット。

    結果が更新されるまで数分かかる場合があります。 新しく作成されたインデクサーの状態が [進行中] または [成功] であることがわかります。 一覧には、インデックスが作成されたドキュメントの数も表示されます。

検索インデックスの結果をチェックする

  1. 左側のウィンドウで、[ インデックス] を選択します。

  2. [hotels-sample-index] を選びます。 インデックスにドキュメントまたはストレージが 0 個ある場合は、Azure portal が更新されるまで待ちます。

    Azure portal の Azure AI Search サービス ダッシュボードの [インデックス] リストのスクリーンショット。

  3. [フィールド] タブを選択して、インデックス スキーマを表示します。

  4. 書き込むクエリがわかるように、 フィルター可能 または 並べ替え可能な フィールドを確認します。

    Azure portal の Azure AI Search サービスのインデックスのスキーマ定義を示すスクリーンショット。

フィールドを追加または変更する

[フィールド] タブでは、[フィールドの追加] を選択し、名前、サポートされているデータ型、および属性を指定することで、フィールドを作成できます。

既存のフィールドを変更することはより困難です。 既存のフィールドには検索インデックスに物理的な表現があるため、コード内でも変更できません。 既存のフィールドを根本的に変更するには、元のフィールドを置き換える新しいフィールドを作成する必要があります。 スコアリング プロファイルや CORS オプションなどの他のコンストラクトは、いつでもインデックスに追加できます。

インデックス定義オプションを確認して、インデックスの設計時に編集できる内容と編集できないことを理解します。 オプションが淡色表示の場合、変更や削除はできません。

検索エクスプローラーを使用したクエリ実行

これで、検索 エクスプローラーを使用してクエリを実行できる検索インデックスが作成されました。これにより、 Documents - Search Post (REST API) に準拠する REST 呼び出しが送信されます。 このツールでは、 単純なクエリ構文完全な Lucene クエリ構文がサポートされています。

検索インデックスに対してクエリを実行するには:

  1. [Search エクスプローラー] タブで、検索するテキストを入力します。

    Search Explorer ツールでクエリを入力して実行する方法を示すスクリーンショット。

  2. 出力の非表示領域にジャンプするには、ミニ マップを使用します。

    Search Explorer ツールとミニマップでのクエリの長い結果を示すスクリーンショット。

  3. 構文を指定するには、JSON ビューに切り替えます。

    JSON ビュー セレクターのスクリーンショット。

hotels-sample インデックスのクエリ例

次の例では、JSON ビューと 2024-05-01-preview REST API バージョンを想定しています。

ヒント

JSON ビューでは、パラメーター名を補完する IntelliSense がサポートされています。 JSON ビュー内にカーソルを置き、スペース文字を入力して、すべてのクエリ パラメーターの一覧を表示します。 sなどの文字を入力して、その文字で始まるクエリ パラメーターのみを表示することもできます。

Intellisense では無効なパラメーターが除外されないため、最適な判断を使用してください。

フィルターの例

Parking、Tags、Renovation Date、Rating、Location はフィルター可能です。

{
    "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 関数は、指定した Locationgeography'POINT の各座標に基づいて位置データのすべての結果をフィルター処理します。 このクエリでは、緯度と経度の座標 -122.12 47.67から 5 km 以内のホテルを検索します。これは "Redmond, Washington, USA" です。クエリには、ホテル名と住所の場所に &$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
}

seatleの代わりにSeattleなどのクエリ用語のスペルが間違っている場合、一般的な検索では一致が返されません。 queryType=full パラメーターは、チルダ (~) オペランドをサポートする完全な Lucene クエリ パーサーを呼び出します。 これらのパラメーターを使用すると、クエリは指定されたキーワードのあいまい検索を実行し、類似しているが完全一致ではない用語に一致します。

インデックスに対してこれらのサンプル クエリを試すには、少し時間がかかります。 詳細については、「 Azure AI Search でのクエリ」を参照してください。

リソースをクリーンアップする

独自のサブスクリプションを使用する場合は、プロジェクトの最後に、作成したリソースがまだ必要かどうかを確認することをお勧めします。 リソースを実行したままにすると、お金がかかる場合があります。 リソースは個別に削除することも、リソース グループを削除してリソースのセット全体を削除することもできます。

Azure portal では、左側のウィンドウから [すべてのリソース ] または [ リソース グループ ] を選択することで、リソースを検索および管理できます。

無料の検索サービスを使用している場合、制限は 3 つのインデックス、3 つのインデクサー、3 つのデータ ソースです。 Azure portal で個々のオブジェクトを削除して、制限を超えないようにすることができます。

次のステップ

Azure portal のウィザードで、ブラウザーで動作するすぐに使用できる Web アプリを生成してみましょう。 このクイック スタートで作成した小さなインデックスでこのウィザードを使用するか、組み込みのサンプル データセットの 1 つを使用して、より豊富な検索エクスペリエンスを実現します。