SEARCH
SEARCH 函数用 于以 JSON 格式返回搜索的结果,返回结果会按照相关性进行排序。
语法
FUNCTION SEARCH (IN table_name VARCHAR(65535),
IN search_params LONGTEXT)
RETURN JSON;
参数说明
| 参数 | 描述 | 是否必选 |
|---|---|---|
| table_name | 表名,支持堆表和无主键表。 | 必选 |
| search_params | 搜索参数,是 JSON 格式的字符串。 | 必选 |
search_params 语法结构
search_params 是 JSON 格式的字符串,其语法结构将在此节详细介绍,请配合下文参数和示例一起理解。
语法说明
本节介绍 BNF 语法符号的含义和使用规则:
-
可选参数表示
[ ]在 BNF 中表示可选多个元素,如param_list = param [, param]*表示param_list可以包含 1 个或多个param。rank_feature、rank_expression中[ ]也表示子参数可选。[, "boost" : boost_value]代表 boost 子参数可选,所有 boost 子参数均可选。
-
数组表示
[ ]在 JSON 结构中表示数组,如[condition_list]。
-
选择关系
|表示选择关系,如param = "query" | "knn"表示 param 可以是 "query" 或 "knn"。
-
重复表示
*表示 0 次或多次重复,如param_list = param [, param]*表示param_list可以包含 1 个或多个param。
-
JSON 格式要求
- 所有 JSON 字段名和字符串值都需要用双引号包围。
- 数值不需要用双引号包围。
语法定义
本节详细介绍 search_params 的语法结构,参数说明请参考下方详细参数说明表格。
顶层参数结构
-- 顶层关键字参数
search_params = '{param_list}'
param_list = param [, param]*
-- query 和 knn 参数分别用于全文/标量和向量检索,至少必选一个;混合检索时同时使用
param = "query" : {query_expression}
| "knn" : {knn_expression}
| "rank" : {rank_expression}
| "_source" : [field_list]
| "from" : number
| "size" : number
| "es_mode" : boolean