すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:RESTful API を使用した検索リクエストの開始

最終更新日:Dec 28, 2024

OpenSearch は、さまざまなシナリオでの検索要件を満たすために、多様な検索構文を提供します。

URL

/{indexName}/search

  • サンプル URL には、リクエストヘッダーやエンコード方式などの情報は含まれていません。

  • サンプル URL には、OpenSearch アプリケーションへの接続に使用するエンドポイントも含まれていません。

プロトコル

HTTP

リクエストメソッド

POST

サポートされている形式

JSON

リクエスト署名

次のメソッドを使用して、リクエスト署名を計算できます。リクエスト署名は authorization ヘッダーに格納されます。

パラメーター

タイプ

説明

accessUserName

String

ユーザー名。ユーザー名は、[インスタンスの詳細] ページの [ネットワーク情報] タブで確認できます。

accessPassWord

String

パスワード。パスワードは、[インスタンスの詳細] ページの [ネットワーク情報] タブで変更できます。

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

String

はい

検索リクエストの本文。このパラメーターは空にすることはできません。次の句がサポートされています: query 句config 句sort 句filter 句aggs 句distinct 句kvpairs 句

query 句

String

はい

検索条件。

config 句

String

いいえ

検索結果の形式と取得するドキュメントの数。

filter 句

String

いいえ

フィルター条件。

sort 句

String

いいえ

ドキュメントのソートに使用する条件。

aggs 句

String

いいえ

統計情報を収集するために使用される句。

distinct 句

String

いいえ

各ユーザーのドキュメントが表示されるように、各ユーザーからドキュメントを抽出するために使用される句。

kvpairs 句

String

いいえ

ソート式の可変部分で使用されるパラメーターを定義するために使用される句。

リクエストボディの例

{
  "query": "index_id: 0",
  "config" : {
      "format":"json"
  }
}

レスポンスパラメーター

パラメーター

タイプ

説明

result

json

検索結果。

errors

String

エラーメッセージ。

result パラメーターのフィールド:

  • searchtime: エンジンが検索を完了するまでにかかった時間。単位: 秒。

  • totalHits: config 句に関係なく、1 回の検索でエンジンの条件を満たす結果の数。結果の数が多い場合、この値は最適化されます。

  • items: 検索結果。fields パラメーターは、検索結果の内容を示します。

  • variableValue: カスタムパラメーターの値 (distance パラメーターの値など)。variableValue フィールドは、config 句の format パラメーターが xml または fulljson に設定されている場合にのみ返されます。デフォルトでは、format パラメーターが json に設定されている場合、このフィールドは返されません。

  • sortExprValues: ドキュメントのソートスコア。

  • facet: aggs 句によって返される統計。

  • ARRAY タイプのフィールド: レスポンスが 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"
        }
    ]
}