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

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

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

ヒント

検索エクスプローラーで画像検索がサポートされるようになりました。 クイックスタート: Azure portal の画像検索に関するページで手順を確認できます。

前提条件

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

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

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

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

    ポータルの [検索エクスプローラー] コマンドのスクリーンショット。

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

    [検索エクスプローラー] タブのスクリーンショット。

クエリの 2 つの方法

Search エクスプローラーでクエリを実行するには、2 つの方法があります。

  • クエリ ビューには、既定の検索バーがあります。 空のクエリ、またはブール値を含むフリー テキスト クエリを使用できます。 たとえば、seattle condo +parking のようにします。

  • JSON ビューでは、パラメーター化されたクエリがサポートされます。 フィルター、orderby、select、count、searchFields、およびその他すべてのパラメータを JSON ビューに設定する必要があります。

    ヒント

    JSON ビューでは、パラメーター名を補完する IntelliSense を利用できます。 JSON ビュー内にカーソルを置き、スペース文字を入力すると、すべてのクエリ パラメーターの一覧が表示されます。"s" のような 1 文字を入力すると、"s" で始まるクエリ パラメーターのみが表示されます。 IntelliSense では無効なパラメーターも除外されないため、ご自身で最善の判断を行う必要があります。

    パラメーター化されたクエリの JSON ビューに切り替えます。 この記事の例では、JSON ビューを最後まで使用することを想定しています。 この記事の JSON の例をテキスト領域に貼り付けることができます。

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

指定されていないクエリの実行

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

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

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

{
   "search": "*"
}

結果

非修飾または空のクエリの例

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

フリー テキスト クエリには JSON ビューは必要ありませんが、この記事の他の例と一貫性を保つため JSON で JSON ビューを提供します。

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

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

結果

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

フリー テキスト クエリの例のスクリーンショット。

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

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

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

結果

カウントの例のスクリーンショット。

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

Search エクスプローラーの出力を読みやすくするために明示的に指定されたフィールドに結果を制限するには、"select"` を追加します。 インデックスで "retrievable" とマークされているフィールドだけが検索結果に表示されます。

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

結果

検索結果のフィールドを制限する例のスクリーンショット。

結果の次のバッチを返す

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

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

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

結果

検索結果の次のバッチを返す例のスクリーンショット。

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

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

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

結果

フィルターの例のスクリーンショット。

結果を並べ替える

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

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

結果

並べ替えの例のスクリーンショット。

重要なポイント

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

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

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

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

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

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

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

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

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

次のステップ

クエリ構造やクエリ構文について学習するには、REST クライアントを使用して、API のさらに多くの部分を使用するクエリ式を作成してください。 Search POST REST API は学習や探索に特に役立ちます。