このクイック スタートでは、Azure portal の組み込みクエリ ツールである Search エクスプローラーを使用して、Azure AI Search インデックスに対してクエリを実行する方法について説明します。 それを使用してクエリかフィルター式をテストするか、コンテンツがインデックスに存在するか確認します。
このクイックスタートでは、既存のインデックスを使用して Search エクスプローラーをデモンストレーションします。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure AI Search サービス。 サービスを作成 するか 、現在の サブスクリプションで既存のサービスを検索します。 このクイック スタートでは、無料サービスを使用できます。
このクイック スタートでは、realestate-us-sample インデックスを使用します。 インデックスを作成するには、データの インポート ウィザードを実行し、組み込みのサンプル データを選択し、すべての既定値を使用してウィザードをステップ 実行します。
Search エクスプローラーの起動
Azure portal で検索サービスを見つけて、[概要] ページを開きます。
コマンド バーで、 検索エクスプローラーを選択します。
または、開いているインデックスの [検索エクスプローラー ] タブを選択します。
クエリの 3 つの方法
Search エクスプローラーでクエリを実行するには、次の 3 つの方法があります。
クエリ ビューには、既定の検索バーがあります。 空のクエリや、
seattle condo + parking
などのブール値を含む自由形式のクエリを受け入れます。画像ビューには、PNG、JPG、または JPEG ファイルを参照またはドラッグ アンド ドロップするためのウィンドウが用意されています。 インデックスに 画像ベクター化と同等のスキルがない限り、このビューは使用できません。
JSON ビューでは、パラメーター化されたクエリがサポートされます。 フィルター、orderby、select、count、searchFields、およびその他すべてのパラメータを JSON ビューに設定する必要があります。
例: イメージ クエリ
検索エクスプローラーでは、 イメージ ビューを使用して画像をクエリ入力として受け入れます。そのためには、サポートされている vectorizer-skill ペアを使用する必要があります。 詳細については、「 検索インデックスでベクターライザーを構成する」を参照してください。
realestate-us-sample インデックスは、画像のベクター化用に構成されていません。 イメージ クエリを実行する場合は、「 クイック スタート: Azure portal でのベクター検索」の説明に従ってインデックスを作成します。 このクイック スタートではテキストベースのサンプル データに依存しているため、画像を含むドキュメントを使用する必要があります。
イメージ クエリを実行するには、画像を選択するか、検索領域にドラッグして、[ 検索] を選択します。 検索エクスプローラーは、画像をベクター化し、クエリを実行するためにベクターを検索エンジンに送信します。 検索エンジンは、指定した k
数の結果まで、入力イメージと十分に類似したドキュメントを返します。
例: JSON クエリ
検索エクスプローラーを使用して実行できる JSON クエリの例を次に示します。 これらの例に従うために、 JSON ビューに切り替えます。 各 JSON の例をテキスト領域に貼り付けることができます。
ヒント
JSON ビューでは、パラメーター名を補完する IntelliSense を利用できます。 JSON ビュー内にカーソルを置き、スペース文字を入力してすべてのクエリ パラメーターを表示します。 "s" などの文字を入力して、その文字で始まるクエリ パラメーターのみを表示することもできます。 Intellisense では無効なパラメーターが除外されないため、最適な判断を使用してください。
指定されていないクエリの実行
Search エクスプローラーでは、POST 要求は Search POST REST API を使用して内部に作成され、応答は詳細な JSON ドキュメントとして返されます。
コンテンツを初めて見る場合は、[用語が指定されていない検索] を選択して空の 検索 を実行します。 空の検索は最初のクエリとして役に立ちます。ドキュメント全体が返されるので、ドキュメントの構成を確認できるからです。 空の検索では検索スコアがなく、ドキュメントが任意の順序で返されます (すべてのドキュメントについて "@search.score": 1
)。 既定では、50 個のドキュメントが検索要求で返されます。
空の検索に相当する構文は *
または "search": "*"
です。
{
"search": "*",
"count": true
}
結果
フリー テキスト クエリを実行する
演算子の有無にかかわらず、自由形式の検索は、カスタム アプリから 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 構文で表現します。
リソースをクリーンアップする
独自のサブスクリプションを使用している場合は、プロジェクトの最後に、作成したリソースがまだ必要かどうか判断してください。 リソースを実行したままにすると、お金がかかる場合があります。 リソースを個別に削除するか、リソース グループを削除してリソースのセット全体を削除することができます。
Azure portal 左側のナビゲーション ペインにある [すべてのリソース] または [リソース グループ] リンクを使って、リソースを検索および管理できます。
無料サービスを使っている場合は、3 つのインデックス、インデクサー、およびデータソースに制限されることに注意してください。 Azure portal で個別の項目を削除して、制限を超えないようにすることができます。
次のステップ
クエリ構造やクエリ構文について学習するには、REST クライアントを使用して、API のさらに多くの部分を使用するクエリ式を作成してください。 Search POST REST API は学習や探索に特に役立ちます。