次の方法で共有


クイック スタート: 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. サンプル JSON ドキュメントをダウンロードします。

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

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

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

  5. HotelsData_toAzureBlobs.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 取得可能、フィルター可能、検索可能
    ParkingIncludedIsDeletedLocation 取得可能、フィルター可能、ファセット化可能
    LastRenovationDateRating 取得可能、フィルター可能、並べ替え可能
    Address.StreetAddressRooms.DescriptionRooms.Description_fr 取得可能、検索可能
    Address.CityAddress.StateProvinceAddress.PostalCodeAddress.Country 取得可能、フィルター可能、ファセット可能、検索可能、並べ替え可能
    Rooms.TypeRooms.BedOptionsRooms.Tags 取得可能、フィルター可能、絞り込み可能、検索可能
    Rooms.BaseRateRooms.SleepsCountRooms.SmokingAllowed 取得可能、フィルター可能、ファセット化可能

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

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

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

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

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

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

オートコンプリートまたは推奨クエリが必要な場合は、 Suggesters を指定します。

詳細設定をスキップする

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

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

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

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

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

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

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

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

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

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

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 ビューと最新のプレビュー 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 アプリを生成してみましょう。 このクイック スタートで作成した小さなインデックスでこのウィザードを使用するか、 サンプル データ を使用してより豊富な検索エクスペリエンスを実現します。