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

OpenSearch:RESTful API を使用した検索の実行

最終更新日:Mar 19, 2026

このサービスは、さまざまな検索シナリオに対応する豊富な検索構文を提供します。

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"
        }
    ]
}