このシステムは、さまざまなシナリオの検索要件を満たすために、豊富な検索構文を提供します。
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name: アプリケーション名。Premium Edition および Standard Edition はマルチアプリケーションバージョンです。サービス中のアプリケーションにアクセスするには、アプリケーション名を指定する必要があります。
上記の URL には、リクエストヘッダー、エンコーディング、その他の要素は含まれていません。
上記の URL には、アプリケーションにアクセスするためのホストアドレスは含まれていません。
上記の URL にあるクエリパラメーターの定義、使用方法、および例については、後述の「クエリパラメーター」セクションをご参照ください。
リクエストプロトコル
HTTP
リクエストメソッド
GET
サポートされるフォーマット
JSON
クエリパラメーター
クエリパラメーターの連結方法の詳細については、「v3 API 署名メカニズム」をご参照ください。
パラメーター | 型 | 必須 | 有効値 | デフォルト値 | 説明 |
query | string | はい | 検索の本体です。このパラメーターは空にできません。config、query、sort、filter、aggregate、distinct、kvpair などの句をサポートしています。 | ||
fetch_fields | string | いいえ | すべての表示可能なフィールド。 | クエリ結果で返却するフィールドを指定します。複数のフィールドはセミコロン ( | |
disable | string | いいえ | 有効になっている指定されたパラメーター機能を無効にします。 | ||
first_rank_name | string | いいえ | システム内のデフォルトの基本ソート式の名前。 | 基本ソート関数の名前を設定します。サポートされている基本ソート名は 1 つだけです。 | |
second_rank_name | string | いいえ | サービスのデフォルトのソート式名 | 高度ソート関数の名前を設定します。サポートされている高度ソート名は 1 つだけです。 | |
user_id | string | いいえ | 現在の検索リクエストを開始したエンドユーザーを識別します。このパラメーターは、優先度の高い順に、次のいずれかの値に設定できます:1. エンドユーザーの長期ログイン ID。2. エンドユーザーのモバイルデバイスの IMEI。 | ||
re_search | string | いいえ | クエリ書き換えポリシーを設定します。現在、合計ヒット数のしきい値に基づくポリシーのみ設定できます。 | ||
biz | string | いいえ | リクエストに関連するビジネス情報 (リクエストの発生元であるビジネスタイプなど) を記述します。 | ||
summary | string | いいえ | システムの検索結果のサマリー構成を取得します。 | 検索結果のサマリーを設定します。ハイライト、切り捨て、その他の操作を行うフィールドを指定できます。 | |
query clause | string | はい | 検索条件を設定します。 | ||
config clause | string | いいえ | データフォーマットと返却するドキュメント数を設定します。 | ||
filter clause | string | いいえ | フィルター条件を設定します。 | ||
sort clause | string | いいえ | ドキュメントのソート条件を設定します。int 型の単一フィールドによるソートのみがサポートされています。これは v3 API および SDK に限定されます。 |
クエリパラメーターの使用方法
query: `query` パラメーターは、複数の句を組み合わせて、多様な検索要件を満たすことができます。`query` パラメーター内の句は
&&で連結されます。fetch_fields: 返却されるテキストデータのサイズは、パフォーマンスに大きな影響を与えます。必要なフィールドのみを取得してください。このパラメーターが SDK または API で設定されている場合、コンソールでの対応する構成は上書きされます。
qp: このパラメーターが SDK または API で設定されている場合、コンソールでの対応する構成は上書きされます。
注: コンソールの検索テストページで `qp` の効果と結果を確認できます。現在、API と SDK はこの情報を公開していません。
disable: このパラメーターを使用して、`qp`、`summary`、`first_rank`、`second_rank`、`re_search` などのパラメーターの機能を無効にできます。
特徴の説明
このパラメーターは、クエリ中に特定の機能を無効にするかどうかを制御します。
クエリ分析、ハイライト、基本ソートと高度ソート、クエリ書き換えなどの機能を無効にできます。
パラメーターのフォーマット:
disable=function[;function] function=function_name[:function_param]例:
クエリ分析を無効にするには、`disable=qp` を設定します。
クエリ分析の `spell_check` 機能を無効にするには、`disable=qp:spell_check` を設定します。
再検索を無効にするには、`disable=re_search` をセットします。
first_rank_name: このパラメーターが SDK または API で設定されている場合、コンソールでの対応する構成は上書きされます。
second_rank_name: このパラメーターが SDK または API で設定されている場合、コンソールでの対応する構成は上書きされます。
user_id:
検索リクエストでこのパラメーターを設定する場合、`user_id` の値は URL エンコードされている必要があります。
raw_query:
特徴の説明
このパラメーターは、エンドユーザーが入力した元の検索クエリを指定します。
パラメーターのフォーマット:
raw_query=contentcontent: 元の検索クエリ。
re_search:
特徴の説明
このパラメーターは、クエリ書き換えポリシーを設定します。現在、合計ヒット数のしきい値に基づくポリシーのみ設定できます。
パラメーターのフォーマット:
re_search=strategy:threshold,params:total_hits#${COUNT}COUNT: クエリ書き換えをトリガーする `total_hits` の上限。`total_hits` が COUNT 未満の場合、クエリ書き換えが実行されます。
例:
re_search=url_encode(strategy:threshold,params:total_hits#6)
biz:
特徴の説明
このパラメーターは、リクエストに関連するビジネス情報 (リクエストの発生元であるビジネスタイプなど) を記述します。
パラメーターのフォーマット:
biz=type:$TYPEtype: トラフィックのタイプ。値は定義できます。後でこの値を使用して、レポートで異なるトラフィックソースを区別できます。
例:
biz=type:home_page
vector_threshold:
特徴の説明
このパラメーターは、ベクトル検索におけるドキュメント取得のベクタースコアのしきい値を制御します。この値より小さいベクタースコアを持つドキュメントのみが返却されます。
パラメーターのフォーマット:
vector_threshold=14.0値は浮動小数点数です。
このパラメーターはオプションです。設定されていない場合、システムは組み込みのしきい値を使用します。
summary:
`summary_element_prefix` と `summary_element_postfix` パラメーターは同時に設定する必要があります。
`summary_element` パラメーターと (`summary_element_prefix`, `summary_element_postfix`) のペアは互いに影響します。後から出現する構成が、先に出現した構成を上書きします。
現在、サマリーとハイライトを個別に設定することはできません。
このパラメーターが SDK または API で設定されている場合、コンソールでの対応する構成は上書きされます。
パラメーター | 型 | 必須 | 有効値 | デフォルト値 | 説明 |
summary_field | string | はい | サマリー対象のフィールド。 | ||
summary_element | string | いいえ | em | ハイライトタグは、山括弧を除いた 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` は失敗を示します。リクエストが失敗した場合は、返却されたエラーコードに基づいて問題をトラブルシューティングしてください。 |
request_id | string | クエリレコードの ID。主にトラブルシューティングに使用されます。 |
result | JSON | 実際の結果。クエリ時間 (`searchtime`)、エンジンからの合計結果数 (`total`)、現在のリクエストで返却された結果数 (`num`)、クエリで返却可能な最大結果数 (`viewtotal`)、クエリ結果 (`items`)、統計結果 (`facet`) などの情報が含まれます。 |
errors | list | エラーコードとメッセージ。`message` はエラーメッセージを表します。`code` の意味については、「エラーコードの説明」をご参照ください。 |
searchtime: エンジンがリクエストの処理に要した時間 (秒)。
`total`、`viewtotal`、`num` の違い: `total` は、`config` 句を考慮せずに、エンジン内でクエリ条件を満たす結果の数です。結果が多い場合、この値は推定値であり、通常は表示目的で使用されます。`viewtotal` は、パフォーマンスと関連性の理由からエンジンが返却する結果の最大数です。結果をページングするには、`start` + `hit` が `viewtotal` 未満である必要があります。`num` は、現在のリクエストに対して実際に返却されたアイテムの数です。この値は `config` 句の `start` および `hit` パラメーターによって制限され、`hit` の値を超えることはありません。
compute_cost: 単一のマップ要素を含む配列です。`index_name` はアプリケーション ID、`value` はクエリによって消費されたロジックコンピューティングユニット (LCU) の数です。
items: 取得したデータが含まれます。fields パラメーターには、検索結果のコンテンツが含まれます。
variableValue: 距離値などのカスタムパラメーターの返却結果です。`variableValue` ノードは、config 句の format が
xmlまたはfulljsonに設定されている場合にのみ表示されます。デフォルトでは、このノードは `json` フォーマットでは表示されません。sortExprValues: 対応するドキュメントのソートスコア。
facet: Aggregate 句によって返却された情報を格納します。
配列フィールドタイプ: 配列フィールドが `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": "Men's jacket lapel 2021 spring and autumn new youth thin top casual zipper 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": "属性が存在しません。"
}
],
"status": "FAIL"
}注:`status` が `FAIL` の場合、エラーが発生し、結果が返されないことを示します。ただし、場合によっては、エラーと結果の両方が返されることがあります。このような場合、`status` は `OK` になります。例えば、`1000 サーバーエラー` (検索タイムアウト) または `2112` エラー (高度ソートのインデックスが未指定) が発生した場合でも、結果が返されることがあります。
スクロールスキャン
従来の検索は、最短時間で最も関連性の高い結果を取得するように設計されています。このため、検索結果の数は制限されています。たとえば、検索メソッドは最大 5,000 件のドキュメントを取得できます。一部のシナリオでは、分析のためにより多くの結果を取得する必要がある場合があります。scroll API を使用すると、より多くの結果を取得できます。
サポートされている句
`query` 句。
`config` 句。この句では `start` パラメーターは無効です。
`filter` 句。
`sort` 句。この句は v3 API および SDK に限定されており、サポートしているのは `int` 型の単一フィールドによるソートのみです。
URL
初期クエリ
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&query_parameters
後続のクエリ
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&query_parameters
$app_name:アプリケーションの名前です。
前述の URL では、アプリケーションにアクセスするためのホストアドレスが省略されています。
前述のスクロールリクエスト URL では、リクエストヘッダー、クエリパラメーターの内容、エンコーディング、およびその他の要素が省略されています。完全なスクロールリクエスト URL については、以下の例をご参照ください。
スクロールメソッドの機能は制限されており、ほとんどの機能はサポートされていません。具体的な制限事項については、末尾の注記をご参照ください。
リクエストプロトコル
HTTP
HTTP リクエストメソッド
GET
対応フォーマット
JSON
クエリパラメーター
パラメーター | タイプ | 必須 | 有効な値 | デフォルト値 | 説明 |
scroll | 文字列 | はい | 週、日、時、分、秒 | 次のスクロールリクエストの有効期間を指定します。このパラメーターはリクエストごとに設定する必要があります。例えば、1m は 1 分を示します。サポートされている時間単位は、w (週)、d (日)、h (時)、m (分)、s (秒) です。 | |
search_type | 文字列 | はい | scan | このパラメーターは最初のクエリで必須です。後続のクエリでは不要です。後続のクエリは scroll_id を指定して行われます。 | |
scroll_id | 文字列 | はい | scroll メソッドの最初の呼び出しでは scroll_id が返されますが、データは含まれません。後続の各検索では、前の応答で返された scroll_id を指定する必要があります。後続の検索結果には、新しい scroll_id と対応するデータの両方が含まれます。このパラメーターは、後続のすべてのクエリで必須です。 | ||
query 句 | 文字列 | はい | 検索条件を設定します。 | ||
config 句 | 文字列 | はい | データ形式と返すドキュメント数を設定します。 | ||
filter 句 | 文字列 | いいえ | フィルター条件を設定します。 | ||
sort 句 | 文字列 | いいえ | ドキュメントのソート条件を設定します。int 型の単一フィールドによるソートのみサポートされています。これは v3 API および SDK に限定されます。 | ||
fetch_fields parameter | 文字列 | いいえ | 返すアプリケーションフィールドを指定します。 |
返却結果
パラメーター | 型 | 説明 |
status | string | 実行結果。`OK` は成功を示し、`FAIL` は失敗を示します。リクエストが失敗した場合は、返されたエラーコードに基づいて問題をトラブルシューティングしてください。 |
request_id | string | クエリレコードの ID。主にトラブルシューティングに使用されます。 |
result | string | 実際の結果。クエリ時間 (`searchtime`)、エンジンからの結果の総数 (`total`)、現在のリクエストで返された結果の数 (`num`)、クエリに対して返すことができる結果の最大数 (`viewtotal`)、クエリ結果 (`items`)、統計結果 (`facet`)、および `scroll_id` などの情報が含まれます。 |
errors | string | エラー内容。`error_message` はエラーメッセージを表します。`error_code` の意味に関する詳細については、「エラーコード」ドキュメントをご参照ください。 |
スクロール API は現在、`fulljson` および `json` 応答フォーマットのみをサポートしています。
スクロール例
`config` 句では、`start` パラメーターは無効です。`hit` パラメーターを使用して、各バッチで取得するドキュメント数を設定できます。`aggregate`、`distinct`、ラフソート式および高度ソート式などの機能は無効です。`sort` 句は、`int` 型の単一フィールドによるソートのみをサポートします。複数のアプリケーションにまたがるスクロールクエリはサポートされていません。無効な `scroll_id` を指定した場合、エラーが報告されます。サポートされている応答フォーマットは `fulljson` と `json` です。最初のクエリでは `scroll_id` のみが返され、ドキュメントデータは返されません。データを取得するには、再度クエリを実行し、前の応答で得られた `scroll_id` を指定する必要があります。
最初のリクエスト
この例では、リクエストヘッダー、エンコーディング、およびその他の要素を省略しています。
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": ""
}後続のリクエスト
この例では、リクエストヘッダーやエンコーディングなどの詳細は省略しています。
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": ""
}