排序上下文
编辑排序上下文
编辑使用 Painless 脚本对查询中的文档进行排序。
变量
-
params
(Map
,只读) - 作为查询的一部分传入的用户定义参数。
-
doc
(Map
,只读) - 包含当前文档的字段。对于单值字段,可以通过
doc['fieldname'].value
访问值。对于多值字段,这将返回第一个值;其他值可以通过doc['fieldname'].get(index)
访问 -
_score
(double
,只读) - 当前文档的相似度得分。
返回值
-
double
或String
- 排序键。返回类型取决于脚本排序配置中
type
参数的值 ("number"
或"string"
)。
API
标准的Painless API 可用。
示例
要运行此示例,请首先按照上下文示例中的步骤操作。
要按 theatre
字段的长度对结果进行排序,请提交以下查询
GET /_search { "query": { "term": { "sold": "true" } }, "sort": { "_script": { "type": "number", "script": { "lang": "painless", "source": "doc['theatre'].value.length() * params.factor", "params": { "factor": 1.1 } }, "order": "asc" } } }