OpenSearchは、さまざまなシナリオでの検索要件を満たすために、さまざまな検索構文を提供します。
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name: アプリケーションの名前。OpenSearchは、アドバンストアプリケーションとスタンダードアプリケーションを提供します。このパラメータは必須です。検索リクエストは、アプリケーションのオンラインバージョンに送信されます。
サンプル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 | デフォルトの大まかなソート式の名称 | 大まかなソート式の名称です。 | ||
second_rank_name | string | デフォルトの精密ソート式の名称 | 精密ソート式の名称。 | ||
user_id | string | いいえ | 検索リクエストを開始するユーザーのID。有効な値: ユーザーのロングメンバーIDとユーザーのモバイルデバイスの国際移動体装置識別番号 (IMEI)。前者は後者よりも優先されます。 | ||
abtest | string | いいえ | このパラメーターは、A/Bテスト機能を使用する場合に必須です。 | ||
raw_query | string | いいえ | このパラメーターは、カテゴリ予測などのアルゴリズムをトレーニングするために必要です。すべての検索リクエストにこのパラメーターを設定することをお勧めします。 | ||
re_search | string | いいえ | 再検索ポリシー。再検索ポリシーは、合計ヒット数のしきい値のみに基づいて構成できます。 | ||
disable | string | いいえ | 特定のパラメータで指定された有効な機能を無効にします。 | ||
first_rank_name | string | デフォルトの粗ソート式の名前 | 検索結果の概要の設定です。特定のフィールドを赤色で強調表示したり、切り詰めたりするように指定できます。 | ||
second_rank_name | string | この検索リクエストを導くソースリクエスト。検索クエリがドロップダウンの候補、トップ検索、ヒントなどの機能によって推奨される場合、推奨される検索クエリを検索する検索リクエストのIDをこのパラメータに割り当てることができます。これにより、機能のさまざまな指標を計算できます。指標に基づいて機能の効果を評価し、評価結果に基づいて機能を最適化できます。詳細については、ドロップダウンの候補をご参照ください。 | |||
クエリ句 | 文字列 | はい | 検索条件を指定します。 | ||
config 句 | string | はい | 検索結果の形式と取得するドキュメントの数を指定します。 | ||
フィルター句 | 文字列 | フィルター条件を指定します。 | |||
user_id | string | 検索リクエストを開始するユーザーのID。有効な値:ユーザーの長いメンバーIDと、ユーザーのモバイルデバイスの国際モバイル機器識別子(IMEI)。前者は後者よりも優先されます。 | |||
abtest | string | 検索結果に返されるフィールド。 |
リクエストパラメータの使い方
query: 複数の句を指定して、さまざまな検索要件を満たすことができます。query パラメーターの句は、
&&
で連結されます。fetch_fields: 返されるテキストデータのサイズは、検索パフォーマンスに大きく影響します。必要なフィールドのみを返すことをお勧めします。SDK または API 操作で設定された fetch_fields パラメーターは、OpenSearch コンソールで指定されたデフォルトの表示フィールドよりも優先されます。
qp: SDK または API 操作で設定された qp パラメーターは、OpenSearch コンソールで指定されたクエリ分析ルールよりも優先されます。
disable: qp、summary、first_rank、second_rank、re_search などのパラメーターで指定された機能を無効にすることができます。
説明
このパラメーターを使用して、検索中に特定の機能を無効にすることができます。
クエリ分析、赤字の強調表示、粗ソートと精密ソート、再検索などの機能を無効にすることができます。
パラメーター形式:
disable=function[;function] function=function_name[:function_param]
例:
クエリ分析機能を無効にする: disable=qp
クエリ分析のスペルチェック機能を無効にする: disable=qp:spell_check
再検索機能を無効にする: 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: テストシーンのインジケーター。すべてのシーンの検索リクエストのテストを設定しない場合は、このパラメーターは不要です。
raw_query:
説明
このパラメーターは、カテゴリ予測に基づく検索に使用されます。検索クエリが raw_query パラメーターの値と同じ場合にのみ、検索結果はカテゴリ予測に基づいてソートされます。
このパラメーターは、カテゴリ予測モデルなどのアルゴリズムをトレーニングするために使用されます。すべての検索リクエストに対してこのパラメーターを設定することをお勧めします。
このパラメーターは、ユーザーが入力した検索クエリに設定することをお勧めします。
パラメーター形式:
raw_query=content
content: 元の検索クエリ。
re_search:
説明
このパラメーターは、再検索ポリシーを設定するために使用されます。再検索ポリシーは、合計ヒット数のしきい値のみに基づいて設定できます。
パラメーター形式:
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
summary:
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 | string | 検索結果に関する情報。searchtime、total、num、viewtotal、items、および facet パラメーターが含まれます。 |
errors | string | エラー情報。error_message パラメーターはエラーメッセージを示します。エラーコードの詳細については、エラーコード を参照してください。 |
searchtime: エンジンが検索を完了するまでにかかった時間。単位: 秒。
total、viewtotal、および num パラメーターの違い: total パラメーターは、config 句に関係なく、1 回の検索でエンジンの条件を満たす結果の数を示します。結果の数が多い場合、total パラメーターの値は最適化されます。ただし、検索のパフォーマンスと関連性を確保するために、エンジンは viewtotal パラメーターの値以下の数の結果を返します。ページングが必要な場合は、start パラメーターと
hit
パラメーターの値の合計が viewtotal パラメーターの値よりも小さくなければなりません。total パラメーターは通常、表示に使用されます。num パラメーターは、この検索要求で返されるエントリの数を示します。このパラメーターの値は、config 句の start パラメーターと hit パラメーターによって制限され、hit パラメーターの値を超えることはありません。items: 検索結果。fields パラメーターは、検索結果の内容を示します。
variableValue: カスタムパラメーターの値。たとえば、distance パラメーターの値です。variableValue パラメーターは、config 句の format が
XML
またはfullJSON
の場合にのみ表示され、format がJSON
の場合はデフォルトで表示されません。sortExprValues: ドキュメントのソートスコア。
facet: aggregate 句によって返される統計。
ARRAY 型のフィールド: レスポンスが JSON または fullJSON 形式の場合、データはタブ文字 (\t) で区切られます。レスポンスが XML 形式の場合、データはスペースで区切られます。
サンプル検索レスポンス
JSON 形式のレスポンス
{
"status": "OK",
"request_id": "155310917017444091100003",
"result": {
"searchtime": 0.031081,
"total": 1,
"num": 1,
"viewtotal": 1,
"compute_cost": [
{
"index_name": "84922",
"value": 0.292
}
],
"items": [
{
"cat_id": "84922",
"text_field": "The Basketball legend Kobe likes meinv",
"index_name": "84922"
}
],
"facet": []
},
"qp": [
{
"app_name": "84922",
"query_correction_info": [
{
"index": "default",
"original_query": "Applet iphone charger",
"corrected_query": "Apple iphone charger",
"correction_level": 1,
"processor_name": "spell_check"
}
]
}
],
"errors": [],
"tracer": "",
"ops_request_misc": "%7B%22request%5Fid%22%3A%22155310917017444091100003%22%7D"
}
エラー応答
{
"status": "OK",
"request_id": "150149648719953661651650",
"result": {
"searchtime": 0.402225,
"total": 1,
"num": 0,
"viewtotal": 0,
"items": [
{
"fields": {
"id": "10",
"name": "This is the title of a new <em>document</em>",
"phone": "13900001111",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"10",
"10000.1354238242"
]
}
],
"facet": []
},
"errors": [
{
"code": 1000,
"message": "Server error." // サーバーエラー
}
],
"tracer": "",
"ops_request_misc":"%7B%22request%5Fid%22%3A%22156680563319723149105067%22%2C%22scm%22%3A%2220140713.115106..%22%7D"
}
注: エラーが報告され、結果が返されない場合、status パラメータの値は FAIL です。エラーと結果の両方が返される場合、status パラメータの値は OK です。検索がタイムアウトしたことを示す 1000 サーバーエラーや、詳細ソートで指定されたインデックスが無効であることを示す 2112 などのエラーが発生した場合、結果が返される可能性があります。
スクロール検索
通常の検索では、可能な限り最短時間で最も一致する結果を取得することを目的としています。そのため、返される結果に含めることができるドキュメントの数には制限があります。たとえば、通常の検索の戻り結果には、5,000 を超えるドキュメントを含めることはできません。ただし、シナリオによっては、分析のためにさらに多くの結果が必要になる場合があります。この場合、スクロール検索を使用して、より多くの検索結果を取得できます。
サポートされている句
クエリ句。
設定句: start パラメータが無効です。
フィルタ句。
ソート句。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": "13900001111",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}