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

Tablestore:ネストクエリ

最終更新日:Dec 28, 2024

ネストクエリを実行して、ネストフィールドの子行のデータをクエリできます。ネストフィールドは直接クエリできません。ネストフィールドをクエリするには、NestedQuery オブジェクトでネストフィールドのパスとサブクエリを指定する必要があります。サブクエリは任意のタイプのクエリにすることができます。

前提条件

パラメーター

パラメーター

説明

table_name

データテーブルの名前。

index_name

検索インデックスの名前。

path

ネストフィールドのパス。ネストフィールドはツリー構造を使用します。たとえば、news.title は、news というネストフィールド内の title サブフィールドを指定します。

query

ネストフィールドのサブフィールドに対するクエリ。クエリは任意のタイプのクエリにすることができます。

score_mode

フィールドに複数の値が含まれている場合にスコアを計算するために使用される値。

次のサンプルコードは、nested.nested_keyword 列の値が 'sub' である行をクエリする方法の例を示しています。

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::NESTED_QUERY,
            'score_mode' => ScoreModeConst::SCORE_MODE_AVG,
            'query' => array(
                'path' => "nested",
                'query' => array(
                    'query_type' => QueryTypeConst::TERM_QUERY,
                    'query' => array(
                        'field_name' => 'nested.nested_keyword',
                        'term' => 'sub'
                    )
                )
            )
        ),
        'sort' => array(
            array(
                'field_sort' => array(
                    'field_name' => 'nested.nested_long',
                    'order' => SortOrderConst::SORT_ORDER_DESC,
                    'nested_filter' => array(
                        'path' => "nested",
                        'query' => array(
                            'query_type' => QueryTypeConst::TERM_QUERY,
                            'query' => array(
                                'field_name' => 'nested.nested_keyword',
                                'term' => 'sub'
                            )
                        )
                    )
                )
            ),
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('nested')
    )
);
$response = $otsClient->search($request);

FAQ

参考資料