このサービスは、さまざまな検索シナリオに対応する豊富な検索構文を提供します。
URL
/{indexName}/search
-
この URL の例には、リクエストヘッダーパラメーターやエンコーディングは含まれていません。
-
この URL の例には、アプリケーションのホストアドレスは含まれていません。
リクエストプロトコル
HTTP
リクエストメソッド
POST
サポートされているフォーマット
JSON
署名メカニズム
次のメソッドを使用して、署名 (Authorization) を計算できます。
|
パラメーター |
タイプ |
説明 |
|
accessUserName |
文字列 |
ユーザー名です。[インスタンス詳細] > [ネットワーク情報] ページで確認できます。 |
|
accessPassWord |
文字列 |
パスワードです。[インスタンス詳細] > [ネットワーク情報] ページで変更できます。 |
import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;
public class GenerateAuthorization {
public static void main(String[] args) throws Exception {
String accessUserName = "username";
String accessPassWord = "password";
String realmStr = "" + accessUserName + ":" + accessPassWord + "";
String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
System.out.println(authorization);
}
}
Authorization の正しい応答フォーマットは次のとおりです:
cm9vdDp******mdhbA==
注意:HTTP リクエストの authorization パラメーターを設定する際は、プレフィックスとして `Basic` を追加してください。例:
authorization: Basic cm9vdDp******mdhbA==
クエリ本文パラメーター
|
パラメーター |
タイプ |
必須 |
説明 |
|
query |
文字列 |
はい |
検索エンティティです。空にすることはできません。主にサポートされている句は、クエリ句、config 句、sort 句、filter 句、集計句、distinct 句、kvpairs 句です。 |
|
query clause |
文字列 |
はい |
検索条件を設定します。 |
|
config clause |
文字列 |
いいえ |
検索取得のデータ形式と、取得するドキュメント数を設定します。 |
|
filter clause |
文字列 |
いいえ |
フィルター条件を設定します。 |
|
sort clause |
文字列 |
いいえ |
ドキュメントのソート条件を設定します。 |
|
aggregate clause |
文字列 |
いいえ |
統計情報を設定します。 |
|
distinct clause |
文字列 |
いいえ |
distinct 句は、各ユーザーのドキュメントを抽出します。これにより、各ユーザーのドキュメントが表示されるようになります。 |
|
kvpairs clause |
文字列 |
いいえ |
kvpairs 句のソート式の可変部分のパラメーターを定義します。 |
クエリ本文の例
{
"query": "index_id: 0",
"config" : {
"format":"json"
}
}
応答パラメーター
|
パラメーター |
タイプ |
説明 |
|
result |
JSON |
実際に返される結果です。 |
|
errors |
文字列 |
エラーメッセージです。 |
result オブジェクトのパラメーターの説明は次のとおりです:
-
searchtime:エンジンがリクエストを処理するのにかかる時間 (秒単位) です。
-
totalHits:config 句を含まない、クエリ条件に一致する結果の数です。多くの結果が返される場合、この値は推定値になります。
-
items:取得されたデータです。fields オブジェクトには、検索で取得されたコンテンツが含まれます。
-
variableValue:距離値などのカスタムパラメーターの結果です。variableValue ノードは、config 句の format パラメーターが xml または fulljson に設定されている場合にのみ返されます。デフォルトでは、このノードは JSON フォーマットでは返されません。
-
sortExprValues:ドキュメントのソートスコアです。
-
facet:集計句によって返される情報です。
-
配列フィールドタイプ:JSON および fulljson フォーマットでは、データは `\t` で区切られます。XML フォーマットでは、データはスペースで区切られます。
curl の例
curl --location --request POST 'http://ha-cn-*********.public.ha.aliyuncs.com/index_hdfs/search' \
--header 'authorization: Basic *******************' \
--header 'host: ha-cn-*********.public.ha.aliyuncs.com' \
--header 'Content-Type: application/json' \
--data-raw '{
"query": "index_id: 1",
"config" : {
"format":"json"
}
}'
-
この例のエンドポイントは、パブリックネットワークアクセス用のドメイン名です。詳細については、「ネットワーク情報」をご参照ください。
検索例
正常な応答
{
"result": {
"searchtime": 0.010385,
"numHits": 1,
"totalHits": 1,
"coveredPercent": 100.0,
"items": [
{
"fields": {
"id": "1",
"name": "aliyun",
"age": "20"
},
"properties": {},
"attributes": {},
"variableValues": {},
"sortExprValues": [
"10000"
]
}
],
"facet": []
},
"errors": []
}
エラー応答
{
"result": {
"searchtime": 0.000094,
"numHits": 0,
"totalHits": 0,
"coveredPercent": 0.0,
"facet": []
},
"errors": [
{
"code": 1013,
"message": "QueryClause: index not exist. Index name:index_id"
}
]
}