kvpairs 句を使用すると、クエリ時にソート式の可変部分にフィールド値を渡し、クエリ句を介して特定の特徴関数に値を動的に指定できます。ソート式に値をハードコーディングする代わりに、kvpairs を使用して動的に値を渡すことで、ソートロジックを柔軟かつ再利用可能な状態に保つことができます。
構文
kvpairs=key1:value1,key2:value2,...| コンポーネント | 区切り文字 | 説明 |
|---|---|---|
key | : (コロン) | ソート式で参照されるフィールド名です。 |
value | : | そのフィールドに割り当てられる値です。 |
| 複数のペア | , (カンマ) | 複数のキーと値のペアはカンマで区切ります。 |
使用上の注意
kvpairs 句は省略可能です。
例
distinct 句へのフィールドの受け渡し
"alibaba" を含むドキュメントを検索します。結果は company_id でグループ化され、各グループから 1 つのドキュメントが返され、残りは破棄されます。
query=default:'alibaba'&&distinct=dist_key:company_id,dist_count:1,dist_times:1,reserved:false&&kvpairs=duniqfield:company_id特徴関数への一致条件の受け渡し
マッチ条件 13=10:100=1 を使用して、「alibaba」を含むドキュメントを検索します。ファインソート式は、INT_ARRAY タグフィールドで tag_match 関数を使用します。タグフィールドには、複数の属性ペアが含まれています。
kvpairs の query_key は一致条件文字列を保持し、tag_match はこの文字列を使用して tag フィールドの属性ペアを評価します。その際、一致する属性の値が合計され、一致したすべてのキーの中で最大の合計値が保持されます。
query=default:'alibaba'&&kvpairs=query_key:13=10:100=1 // 高度なソート式は tag_match(query_key, tags, sum, max, true, true) です。