4
对于项目,我需要选择过滤器边界内和最接近数字值的文档。这是一个价格,我似乎无法找到这是否可能。在ElasticSearch的数值字段上按距离排序
说我有2个文件:
{
"name": "Document1",
"price": 46.12,
"tags": ["tag1", "tag2"]
}
{
"name": "Document2",
"price": 82.29,
"tags": ["tag1", "tag3"]
}
是否有可能获得与最接近66.23的价格文件?
如果您的群集中启用了动态脚本,您可以使用基于脚本的排序:基于绝对差异进行排序http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-sort.html #_script_based_sorting – keety 2014-10-28 20:20:11
这不是,但我启用它,因为ES只能通过我们软件的私有部分访问,所以看起来相对安全。我目前使用这样的: { “查询”:{ ... }, “排序”:{ “_script”:{ “脚本”:“CUR =(因子 - DOC ['有效载荷'age'] .value; if(cur <0){cur = cur * -1} else {cur = cur}“, ”type“:”number“, ”params“:{ ”factor“ 45 }, “order”:“asc” } } } – 2014-10-29 07:22:28