クイック スタート: Search エクスプローラーを使用して Azure portal でクエリを実行する

このクイックスタートでは、Azure AI Search の検索インデックスに対してクエリを実行するために使用される、Azure portal の組み込みのクエリ ツールである Search エクスプローラーの使用方法について説明します。 それを使用してクエリかフィルター式をテストするか、コンテンツがインデックスに存在するか確認します。

このクイックスタートでは、既存のインデックスを使用して Search エクスプローラーをデモンストレーションします。

前提条件

作業を開始する前に、次の前提条件を満たしておく必要があります。

Search エクスプローラーの起動

  1. Azure portal で、ダッシュボードから検索の概要ページを開くか、または自分のサービスを見つけます

  2. コマンド バーから Search エクスプローラーを開きます。

    Screenshot of the Search explorer command in portal.

    または、開かれたインデックスで組み込みの [Search エクスプローラー] タブを使用します。

    Screenshot of the Search explorer tab.

  3. クエリ パラメーターと API バージョンを指定するには、JSON ビュー切り替えます。 この記事の例では、JSON ビュー全体を想定しています。 この記事の JSON の例をテキスト領域に貼り付けることができます。

    Screenshot of the JSON view selector.

指定されていないクエリ

Search エクスプローラーでは、POST 要求は Search POST REST API を使用して内部的に作成され、応答は詳細な JSON ドキュメントとして返されます。

最初に内容を見るために、用語を指定せずに [検索] をクリックすることによって空の検索を実行します。 空の検索は最初のクエリとして役に立ちます。ドキュメント全体が返されるので、ドキュメントの構成を確認できるからです。 空の検索では検索スコアがなく、ドキュメントが任意の順序で返されます (すべてのドキュメントについて "@search.score": 1)。 既定では、50 個のドキュメントが検索要求で返されます。

空の検索に相当する構文は * または "search": "*" です。

{
   "search": "*"
}

結果

Unqualified or empty query example

自由形式のクエリは、演算子の有無に関係なく、カスタム アプリから Azure AI Search に送信されるユーザー定義のクエリをシミュレートするのに便利です。 インデックス定義で "検索可能" と属性付けされたフィールドのみが、一致するものをスキャンします。

検索語やクエリ式などの検索条件を指定すると、検索順位が機能するようになることに注意してください。 次にフリー テキスト検索の例を示します。 "@search.score" は、既定のスコアリング アルゴリズムを使用して一致に対して計算された関連性スコアです。

{
    "search": "Seattle townhouse `Lake Washington` miele OR thermador appliance"
}

結果

CTRL + F キーを使用して、関心のある特定の語句を結果内で検索できます。

Screenshot of a free text query example.

一致するドキュメントのカウント

インデックスで見つかった一致の数を取得するために追加 "count": true します。 空の検索では、カウントはインデックス内のドキュメントの合計数です。 修飾された検索では、これはクエリ入力と一致するドキュメントの数です。 サービスから返される一致は既定で上位 50 件であることを思い出してください。したがって、カウントは、結果で返されたものより多くのインデックス内での一致を示す可能性があります。

{
    "search": "Seattle townhouse `Lake Washington` miele OR thermador appliance",
    "count": true
}

結果

Screenshot of a count example.

検索結果内のフィールドを制限する

"select" を追加して、検索エクスプローラーで読みやすくするために、明示的に名前が付けられたフィールドに結果を制限します 検索インデックスで "取得可能" とマークされたフィールドのみが結果に表示されます。

{
   "search": "seattle condo",
   "count": true,
   "select": "listingId, beds, baths, description, street, city, price"
}

結果

Screenshot of restrict fields in search results example.

結果の次のバッチを返す

Azure AI Search は、検索順位に基づいて上位 50 の一致を返します。 一致するドキュメントの次のセットを取得するには、追加 "top": 100"skip": 50 、結果セットを 100 ドキュメント (既定値は 50、最大値は 1000) に増やし、最初の 50 個のドキュメントをスキップします。 ドキュメント キー (listingID) をチェックしてドキュメントを識別することができます。

順位付けされた結果を取得するには、クエリ語句や式など、検索条件を指定する必要があることを思い出してください。 取得する検索結果が低位になるほど検索スコアが減少することに注目してください。

{
   "search": "seattle condo",
   "count": true,
   "select": "listingId, beds, baths, description, street, city, price",
   "top": 100,
   "skip": 50
}

結果

Screenshot of returning next batch of search results example.

フィルター式 (より大きい、より小さい、等しい)

パラメーターを使用して、 filter 包含または除外の条件を指定します。 フィールドは、インデックス内で "フィルター可能" として属性付けする必要があります。 この例では、3 より大きいベッドルームを検索します。

{
    "search": "seattle condo",
    "count": true,
    "select": "listingId, beds, baths, description",
    "filter": "beds gt 3"
}

結果

Screenshot of a filter example.

結果を並べ替える

検索スコア以外の別のフィールドで結果を並べ替えるために追加 orderby します。 フィールドは、インデックス内で "並べ替え可能" として属性付けする必要があります。 フィルター処理された値が同じ (同じ価格など) 場合、注文は任意ですが、より深い並べ替えの条件を追加できます。 これをテストするために使用できる式の例:

{
    "search": "seattle condo",
    "count": true,
    "select": "listingId, price, beds, baths, description",
    "filter": "beds gt 3",
    "orderby": "price asc"
}

結果

Screenshot of a sorting example.

重要なポイント

このクイックスタートでは、Search エクスプローラーを使用して、REST API でインデックスにクエリを実行しました。

  • 結果は詳細な JSON ドキュメントとして返されます。そのため、ドキュメントの構成と内容を完全に確認できます。 クエリ式のパラメーターでは select 、返されるフィールドを制限できます。

  • 検索結果は、インデックス内で "取得可能" としてマークされているすべてのフィールドで構成されます。 隣接 する [フィールド] タブを選択して属性を確認します。

  • キーワード検索は、商用 Web ブラウザーで入力する場合と同様に、エンドユーザーのエクスペリエンスをテストするのに便利です。 たとえば、組み込みの不動産サンプル インデックスがあるとしたら、「Seattle apartments lake washington」と入力できます。そして、Ctrl + F キーを使用して検索結果内で語句を見つけることができます。

  • クエリ式とフィルター式は、Azure AI Search に実装されている構文で表されます。 既定値は単純な構文です。しかし、必要に応じて完全な Lucene を使用し、より強力なクエリを実行できます。 フィルター式は、OData 構文で表現します。

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

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

ポータルの左側のナビゲーション ウィンドウにある [All resources](すべてのリソース) または [Resource groups](リソース グループ) リンクを使って、リソースを検索および管理できます。

無料サービスを使っている場合は、3 つのインデックス、インデクサー、およびデータソースに制限されることに注意してください。 ポータルで個別の項目を削除して、制限を超えないようにすることができます。

次のステップ

クエリ構造やクエリ構文について学習するには、Postman または同等のツールを使用して、API のさらに多くの部分を使用するクエリ式を作成してください。 Search POST REST API は、学習と探索に特に役立ちます。