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

OpenSearch:ARRAY 型

最終更新日:Dec 28, 2024

このトピックでは、ARRAY 型のデータのシナリオ、データプッシュ方法、および検索構文について説明します。

シナリオ

ARRAY 型は、同じデータ型の要素のグループを含むデータ構造の型です。配列内の各要素に基づいて個別に検索を実行できます。たとえば、小説には「ミステリー」、「タイムトラベル」、「古典」などのタグが含まれています。「ミステリー」を検索することで小説を見つけることができます。

ARRAY 型のデータをプッシュするにはどうすればよいですか?

OpenSearch は、ARRAY 型のデータをプッシュするための複数の方法を提供します。次の例では、さまざまな方法を使用してデータをプッシュする方法について説明します。

API 操作の呼び出し

ARRAY 型のデータは、JsonArray 形式でアップロードする必要があります。例:

[
    {
        "fields": {
            "id": "0",
            "int_array": [
                14,
                85
            ],
            "float_array": [
                14.0,
                85.0
            ],
            "literal_array": [
                "abc",
                "xyz"
            ]
        },
        "cmd": "ADD"
    }
]

データをアップロードするために呼び出すことができる操作の詳細については、『開発者ガイド』の「トラフィック API リファレンス」>「アプリケーション関連 API 操作」>データの処理を参照してください。

SDK の使用

データプッシュのデモコードトピックで、OpenSearch SDK for Java を使用してデータをプッシュする手順を参照できます。他のプログラミング言語の SDK を使用してデータをプッシュするプロセスも同様です。

データソースの設定

データソースを設定する場合、さまざまな形式のソースデータを解析できます。ARRAY 型のフィールドが定義されている場合は、MultiValueSpliter プラグインをフィールドに関連付け、区切り文字を指定してフィールドの値を区切ることができます。たとえば、このトピックの「シナリオ」セクションで説明されているタグは、「タイムトラベル、ミステリー、ロマンス」の形式で解析されます。この場合、次の図に示すように、区切り文字をカンマ(,)に設定します。プラグインは、データベース内のフィールドを ARRAY 型の値に自動的に変換するため、検索エンジンで値を認識できます。詳細については、データ処理プラグインの使用を参照してください。

1

ARRAY 型のデータを取得する方法と実現できる効果

クエリ句またはフィルター句を使用して、配列の各要素に基づいて個別に検索を実行できます。たとえば、query=tags:'Time-travel' を使用して、タイムトラベル、ミステリー、ロマンスなどのタグを含むドキュメントを検索できます。また、query=title:'Treading On Thin Ice'&&filter=tags="Time-travel" を使用して、「タイムトラベル」タグを含む「Treading On Thin Ice」という名前の小説を検索することもできます。

文字列ではなく配列である ARRAY 型検索の戻り値に注意してください。戻り値は '\t' で区切られます。

FAQ

Q1:TEXT_ARRAY 型が使用できないのはなぜですか?また、TEXT 型と STRING_ARRAY 型の違いは何ですか?

A:TEXT 型には、TEXT、SHORT_TEXT、NWS_TEXT、および MWS_TEXT 型が含まれます。TEXT 型のフィールドには分析プロセスが含まれます。TEXT 型はあいまい一致をサポートし、配列とは関係ありません。STRING_ARRAY 型は、各要素の完全一致をサポートします。各要素は複数の用語で構成されている場合があります。STRING_ARRAY 型のフィールド内のすべての要素が一致する必要はありません。

Q2:配列内の要素の数を取得するにはどうすればよいですか?

A:OpenSearch が提供する fieldlen 関数を使用して、要素の数を取得できます。

Q3:Java コードを使用してデータをプッシュするときに、ARRAY 型のデータを指定するにはどうすればよいですか?

ARRAY 型の変数を使用して、ARRAY 型のデータを指定できます。例:iteral_array--->String [] および int_array--->int []。