OpenSearch は、さまざまなシナリオでの検索要件を満たすために、さまざまな検索構文を提供します。
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name: アプリケーションの名前。アドバンストまたはスタンダード OpenSearch アプリケーションには、オンラインバージョンとオフラインバージョンがあります。検索リクエストを開始するときは、リクエストを送信するアプリケーションの ID を指定する必要があります。一般に、このパラメータにはオンラインアプリケーションの ID を設定できます。オフラインアプリケーションの ID を指定して、オフラインアプリケーションで検索を実行することもできます。
サンプル URL では、リクエストヘッダーやエンコード方式などの情報は省略されています。
サンプル URL では、OpenSearch アプリケーションへの接続に使用するエンドポイントも省略されています。
上記の URL に連結されているすべてのリクエストパラメータの定義、使用方法、およびサンプル値の詳細については、このトピックの「リクエストパラメータ」セクションを参照してください。
プロトコル
HTTP
リクエストメソッド
GET
サポートされている形式
JSON
リクエストパラメータ
リクエストパラメータの連結規則の詳細については、OpenSearch API V3 の署名メソッドを参照してください。
パラメータ | タイプ | 必須 | 有効な値 | デフォルト値 | 説明 |
query | string | はい | 検索リクエストの本文。次の句がサポートされています。config 句、query 句、sort 句、filter 句、aggregate 句、distinct 句、kvpairs 句。 | ||
fetch_fields | string | いいえ | すべての表示フィールド | この検索で取得するフィールド。複数のフィールドはセミコロン ( | |
qp | string | いいえ | 使用可能なルール | 使用するクエリ分析ルール。複数のルールはコンマ ( | |
無効化 | 文字列 | いいえ | 特定のパラメーターで指定された有効な機能を無効にします。 | ||
first_rank_name | string | いいえ | デフォルトの大まかなソート式の名称 | 大まかなソート式の名称です。このパラメーターには最大 1 つの値を指定できます。 | |
second_rank_name | string | いいえ | デフォルトの精密ソート式の名称 | 精密ソート式の名称です。このパラメーターには最大 1 つの値を指定できます。 | |
user_id | string | いいえ | 検索リクエストを開始するユーザーのID。有効な値:ユーザーのロングメンバーIDとユーザーのモバイルデバイスの国際モバイル機器識別番号(IMEI)。前者は後者よりも優先されます。 | ||
disable | string | いいえ | このパラメーターは、A/Bテスト機能を使用する場合に必須です。 | ||
first_rank_name | string | いいえ | このパラメーターは、カテゴリ予測モデルなどのモデルのトレーニングに使用されるアルゴリズムで使用されます。すべてのリクエストでこのパラメーターを構成することをお勧めします。 | ||
second_rank_name | string | いいえ | マルチモーダル検索 (multimodal search) に設定されている検索ポリシーの名前。 | ||
re_search | string | いいえ | 再検索ポリシー。再検索ポリシーは、合計ヒット数のしきい値に基づいてのみ構成できます。 | ||
biz | string | いいえ | 検索リクエストに関するビジネス情報。たとえば、検索リクエストの送信元のビジネスの種類など。 | ||
user_id | string | いいえ | 検索結果の概要の設定です。赤く強調表示したり、切り捨てたりする特定のフィールドを指定できます。 | ||
abtest | string | いいえ | 検索リクエストのID。検索リクエストで、ドロップダウン候補、上位検索、ヒントなどの推奨検索クエリにサンプル検索クエリを使用する場合、このパラメータを検索リクエストのIDに設定して、サンプル検索クエリを検索リクエストに関連付けることができます。これにより、推奨検索クエリの統計情報を取得して、機能のパフォーマンスを評価し、機能を最適化できます。詳細については、ドロップダウン候補をご参照ください。 | ||
クエリ句 | 文字列 | はい | 検索条件。 | ||
config 句 | string | いいえ | 検索結果の形式と取得するドキュメントの数。 | ||
フィルター句 | 文字列 | いいえ | フィルター条件。 | ||
raw_query | string | いいえ | ドキュメントのソートに使用される条件です。ソート句は、INT 型の単一フィールドに基づくソート条件をサポートしています。OpenSearch API および OpenSearch SDK のバージョンは V3 である必要があります。 |
リクエストパラメータの使い方
クエリ: さまざまな検索要件を満たすために、複数の句を指定できます。クエリパラメータの句は、
&&
で連結します。fetch_fields: 返されるテキストデータのサイズは、検索パフォーマンスに大きく影響します。必要なフィールドのみを指定することをお勧めします。SDKまたはAPI操作で設定されたfetch_fieldsパラメータは、OpenSearchコンソールで指定されたデフォルトの表示フィールドを上書きします。
qp: SDKまたはAPI操作で設定されたqpパラメータは、OpenSearchコンソールで指定されたクエリアナライジルールを上書きします。
注: qp パラメーターの検証プロセスと結果は、OpenSearch コンソールの検索テストページで確認できます。SDK または API オペレーションを使用して検証プロセスまたは結果を表示することはできません。
disable: qp、summary、first_rank、second_rank、re_search などのパラメーターで指定された機能を無効にすることができます。
説明
このパラメーターを使用すると、検索中に特定の機能を無効にすることができます。
クエリ分析、赤字の強調表示、粗ソートと精ソート、再検索などの機能を無効にすることができます。
パラメーター形式
disable=function[;function] function=function_name[:function_param]
例:
クエリ分析機能を無効にする: disable=qp
クエリ分析のスペルチェック機能を無効にする: Disable=qp:spell_check。形式: disable=qp:$qp_processor_name。詳細については、QueryProcessor を参照してください。
再検索機能を無効にする: disable=re_search
first_rank_name: SDK または API 操作で設定された first_rank_name パラメーターは、OpenSearch コンソールで指定された粗ソート式を上書きします。
second_rank_name: SDK または API 操作で設定された second_rank_name パラメーターは、OpenSearch コンソールで指定された精ソート式を上書きします。
user_id:
abtest: このパラメーターの値は、次の形式です:
abtest=urlencode(scene_tag:urlencode(\$scene),flow_divider:urlencode(\$value))
。 urlencode は、URL をエンコードするために使用される関数です。flow_divider はユーザーの ID に置き換えることをお勧めします。ユーザーのデバイスの ID または IP アドレスを使用することもできます。 このパラメーターは必須です。
scene_tag: テストシーンのインジケーター。 OpenSearch コンソールでこのパラメーターを指定しない場合、A/B テストはすべてのシーンの検索リクエストに基づいて実行されます。
raw_query:
説明
このパラメーターは、カテゴリ予測に基づく検索に使用されます。検索クエリが raw_query パラメーターの値と同じ場合にのみ、検索結果はカテゴリ予測に基づいてソートされます。
このパラメーターは、カテゴリ予測モデルなどのモデルをトレーニングするために使用されるアルゴリズムに使用されます。すべての検索リクエストに対してこのパラメーターを設定することをお勧めします。
このパラメーターは、ユーザーが入力した検索クエリに設定することをお勧めします。
パラメーター形式
raw_query=content
content: 元の検索クエリ。
re_search:
説明
このパラメーターは、再検索ポリシーを設定するために使用されます。再検索ポリシーは、合計ヒット数のしきい値に基づいてのみ設定できます。
このパラメーターを設定する場合は、クエリ分析機能を有効にする必要があります。
クエリ中に、分析後のクエリ用語の重みが同じである場合、再検索はトリガーされません。 固有表現認識 (NER) 機能の各カテゴリの重みを設定する必要があります。
パラメーター形式
re_search=strategy:threshold,params:total_hits#${COUNT}
COUNT: 再検索をトリガーしたくない場合に許可される合計ヒット数の最小値。合計ヒット数が COUNT パラメーターの値より少ない場合、再検索が実行されます。
例:
re_search=url_encode(strategy:threshold,params:total_hits#6)
biz:
説明
このパラメーターは、検索リクエストが送信されたソースのビジネスタイプなど、リクエストに関するビジネス情報を記述するために使用されます。
パラメーター形式
biz=type:$TYPE
type: 検索リクエストが送信されたソースのタイプ。このパラメーターの値はカスタマイズできます。このパラメーターは、レポートのリクエストソースに関する統計情報の収集に役立ちます。
例:
biz=type:home_page
ベクトルしきい値:
説明
このパラメーターは、ドキュメントを取得するためのベクトルスコアのしきい値を指定するために使用されます。ドキュメントのベクトルスコアがしきい値未満の場合、ドキュメントは取得されます。
パラメーター形式
vector_threshold=14.0
このパラメーターの値は浮動小数点型です。
このパラメーターはオプションです。パラメーターを設定しない場合、システムはデフォルトのしきい値を使用します。
概要:
summary_element_prefix パラメーターと summary_element_postfix パラメーターはペアで使用しなければなりません。
summary_element パラメーター、または summary_element_prefix パラメーターと summary_element_postfix パラメーターのペアのいずれかが有効です。後で設定された方が有効になります。
サマリーと、用語を赤色で強調表示するために使用される設定は、個別に設定することはできません。
SDK または API 操作で設定された summary パラメーターは、OpenSearch コンソールでの検索結果サマリーの構成を上書きします。
パラメーター | タイプ | 必須 | 有効な値 | デフォルト値 | 説明 |
summary_field | string | はい | サマリーを設定するフィールド。 | ||
summary_element | string | いいえ | em | 用語を赤色で強調表示するために使用される HTML タグ。開始および終了の角かっこ (<>) は HTML タグから削除されます。 | |
summary_ellipsis | string | いいえ | ... | サマリーの末尾の省略記号 (...)。 | |
summary_snipped | int | いいえ | 1 | サマリーに必要なセグメントの数。 | |
summary_len | string | いいえ | セグメントの長さ。 | ||
summary_element_prefix | string | いいえ | 用語を赤色で強調表示するために使用される接頭辞。接頭辞は、<em> などの完全な HTML タグである必要があります。 | ||
summary_element_postfix | string | いいえ | 用語を赤色で強調表示するために使用される接尾辞。接尾辞は、</em> などの完全な HTML タグである必要があります。 |
レスポンスパラメーター
パラメーター | タイプ | 説明 |
status | string | 検索の実行結果。有効な値: OK および FAIL。OK の値は、検索が成功したことを示します。FAIL の値は、検索が失敗したことを示します。この場合、エラーコードに基づいてエラーをトラブルシューティングします。 |
request_id | string | リクエスト ID。 |
result | JSON | 検索結果に関する情報。searchtime、total、num、viewtotal、items、および facet パラメーターが含まれます。 |
errors | list | エラー情報。message パラメーターはエラーメッセージを示します。code パラメーターはエラーコードを示します。エラーコードの詳細については、エラーコードを参照してください。 |
searchtime: エンジンが検索を完了するまでにかかった時間。単位:秒。
total、viewtotal、および num パラメーターの違い: total パラメーターは、config 句に関係なく、1 回の検索でエンジンの条件を満たす結果の数を示します。結果の数が多い場合、total パラメーターの値は最適化されます。ただし、検索のパフォーマンスと関連性を確保するために、エンジンが返す結果の数は viewtotal パラメーターの値以下になります。ページングが必要な場合は、start パラメーターと
hit
パラメーターの値の合計が viewtotal パラメーターの値よりも小さくなければなりません。total パラメーターの値は、一般的に表示に使用されます。num パラメーターは、この検索要求で返されるエントリの数を示します。このパラメーターの値は、config 句の start パラメーターと hit パラメーターによって制限され、hit パラメーターの値を超えません。compute_cost: マップ要素が 1 つだけの配列。index_name パラメーターはアプリケーションの ID を示します。value パラメーターは、この検索要求で消費される論理計算ユニット (LCU) を示します。
items: 検索結果。fields パラメーターは、検索結果の内容を示します。
variableValue: カスタムパラメーターの値。たとえば、distance パラメーターの値など。config 句の format パラメーターが
xml
またはfulljson
の場合にのみ、variableValue パラメーターが表示されます。デフォルトでは、format パラメーターがjson
に設定されている場合、variableValue パラメーターは表示されません。sortExprValues: ドキュメントのソートスコア。
facet: aggregate 句によって返される統計。
ARRAY 型のフィールド: レスポンスが JSON または fullJSON 形式の場合、データはタブ文字 (\t) で区切られます。レスポンスが XML 形式の場合、データはスペースで区切られます。
サンプル検索レスポンス
JSON形式
{
"result": {
"searchtime": 0.009554,
"total": 1,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.304
}
],
"num": 1,
"viewtotal": 1,
"items": [
{
"variableValue": {
},
"sortExprValues": [
"10000"
],
"property": {
},
"attribute": {
},
"fields": {
"size": "XL",
"discount_price": "9.9",
"pid": "950",
"range_age": "18\t25",
"detail": "Male Jacket Lapel 2021 in Spring and Autumn New Style Youth Thin Casual Zip-up Jacket",
"index_name": "110247758"
}
}
],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642700916781929257960%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642700916781929257960",
"errors": [],
"status": "OK"
}
サンプルエラー応答
{
"result": {
"searchtime": 0.003999,
"total": 0,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.232
}
],
"num": 0,
"viewtotal": 0,
"items": [],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642716516781913069826%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642716516781913069826",
"errors": [
{
"code": 6127,
"message": "Attribute not exist." // 属性が存在しません。
}
],
"status": "FAIL" // 失敗
}
注記: エラーが報告され、結果が返されない場合、status パラメーターの値は FAIL です。エラーと結果の両方が返される場合、status パラメーターの値は OK です。1000 サーバーエラーや 2112 エラーなどのエラーが返された場合でも、結果が返されることがあります。1000 サーバーエラーは、検索がタイムアウトしたことを示します。2112 エラーは、詳細ソートで指定されたインデックスが無効であることを示します。
スクロール検索
従来の検索シナリオでは、最短時間で最も一致する結果を取得することを目的としています。そのため、結果に含めることができるドキュメントの数には制限があります。たとえば、検索結果には最大 5,000 件のドキュメントを含めることができます。ただし、シナリオによっては、分析のためにさらに多くの結果が必要になる場合があります。この場合、スクロール検索を使用して、より多くの検索結果を取得できます。
サポートされている句
クエリ句。
設定句: start パラメータが無効です。
フィルタ句。
ソート句。1 つのフィールドに基づいてのみソート条件を指定でき、フィールドは INT 型である必要があります。OpenSearch API および OpenSearch SDK のバージョンは V3 である必要があります。
URL
最初の検索
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&リクエストパラメーター
後続の検索
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&リクエスト パラメーター
$app_name: アプリケーションの名前。
サンプル URL には、OpenSearch アプリケーションへの接続に使用するエンドポイントが含まれていません。
上記の 2 つのスクロールリクエスト URL には、リクエストヘッダーのパラメーター、リクエストパラメーター、エンコード方式などの情報が含まれていません。完全なスクロールリクエスト URL の詳細については、このトピックの「スクロール検索のサンプル」セクションを参照してください。
スクロール検索でサポートされる機能は限られており、ほとんどの機能はサポートされていません。スクロール検索の機能制限の詳細については、このトピックの「スクロール検索のサンプル」セクションの注意事項を参照してください。
プロトコル
HTTP
HTTP リクエストメソッド
取得
サポートされている形式
JSON
リクエスト パラメーター
パラメーター | タイプ | 必須 | 有効な値 | デフォルト値 | 説明 |
scroll | STRING | はい | 週、日、時、分、または秒単位で値を設定できます。 | スクロール検索の初回実行時に返されるスクロール ID の有効期間。単位は週 (w)、日 (d)、時 (h)、分 (m)、または秒 (s) です。例: 1m。 | |
search_type | STRING | はい | scan | スクロール検索のタイプ。このパラメーターは、スクロール検索の初回実行時にのみ指定する必要があります。スクロール検索の後続の実行では、scroll_id パラメーターを指定できます。 | |
scroll_id | string | はい | スクロール検索で返される ID。スクロール検索を初めて実行すると、スクロール ID のみが返されます。検索結果を取得するには、この ID を使用してスクロール検索を再度実行します。スクロール検索の後続の実行では、この ID はリクエストパラメーターとして必須であり、レスポンスパラメーターとしても返されます。 | ||
query clause | string | はい | 検索条件。 | ||
config clause | string | はい | 検索結果の形式と取得するドキュメントの数。 | ||
filter clause | string | いいえ | フィルター条件。 | ||
sort clause | string | いいえ | ドキュメントをソートするために使用される条件。ソート句は、INT タイプの単一フィールドに基づくソート条件をサポートします。OpenSearch API および OpenSearch SDK のバージョンは V3 である必要があります。 | ||
fetch_fields | string | いいえ | 検索結果に返されるフィールド。 |
レスポンスパラメーター
パラメーター | タイプ | 説明 |
status | string | 検索の実行結果。有効な値: OK および FAIL。OK の値は、検索が成功したことを示します。FAIL の値は、検索が失敗したことを示します。この場合、エラーコードに基づいてエラーをトラブルシューティングします。 |
request_id | string | リクエスト ID。 |
result | string | 戻り値。searchtime、total、num、viewtotal、items、facet、および scroll_id パラメーターが含まれます。 |
errors | string | エラー情報。error_message パラメーターはエラーメッセージを示します。エラーコードの詳細については、エラーコード を参照してください。 |
スクロール検索の戻り結果は、fullJSON形式とJSON形式のみをサポートしています。
サンプルスクロール検索
スクロール検索を実行する場合、config 句で指定した start パラメータは有効になりません。config 句の hit パラメータを使用して、各実行で返されるドキュメント数を指定できます。スクロール検索は、aggregate、distinct、または rank 句をサポートしていません。スクロール検索は、INT 型の単一フィールドに基づくソート条件をサポートしています。アプリケーションをまたがるスクロール検索はサポートされていません。リクエスト内の scroll_id パラメータの値が無効な場合、エラーが発生します。スクロール検索の戻り結果は、fullJSON および JSON 形式のみをサポートしています。初めてスクロール検索を実行すると、スクロール ID のみが返されます。ドキュメントデータを取得するには、この ID を使用してスクロール検索を再度実行します。
最初のリクエスト
サンプルAPIリクエストでは、リクエストヘッダーのパラメーターやエンコード方式などの情報は省略されています。
http://$host/v3/openapi/apps/app_schema_demo/search?query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'Search'&&sort=+id&&filter=id>0&search_type=scan&scroll=1m&fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id
正常なレスポンスの例
{
"status": "OK",
"request_id": "150150574119953661605242",
"result": {
"searchtime": 0.005029,
"total": 1,
"num": 0,
"viewtotal": 1,
"scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
"items": [],
"facet": []
},
"errors": [],
"tracer": ""
}
後続の要求
サンプルAPIリクエストでは、リクエストヘッダーのパラメーターやエンコード方式などの情報は省略されています。
http://$host/v3/openapi/apps/app_schema_demo/search?fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id&query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'Search'&&sort=+id&&filter=id>0&scroll=1m&scroll_id=eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V+QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1+MMg3ROwCesLlG6X7a2o=
正常なレスポンスの例
{
"status": "OK",
"request_id": "150150574119952551519970",
"result": {
"searchtime": 0.006293,
"total": 1,
"num": 1,
"viewtotal": 1,
"scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
"items": [
{
"fields": {
"cate_id": "0",
"float_arr": "0",
"id": "1",
"int_arr": "0",
"literal_arr": "Search",
"name": "Search",
"phone": "123****5678",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}