我是ElasticSearch的新手,我想知道,一旦使用mvel语法定义了脚本字段,您是否可以随后对其进行过滤或像在其他任何字段中一样在查询主体中对其进行引用?
我找不到与此相关的任何示例,而在文档页面上却看不到任何提及的信息
http://www.elasticsearch.org/guide/reference/modules/scripting/
http://www.elasticsearch.org/guide/reference/api/search/script-fields/
ElasticSearch Server一书没有提到这是否可行
最佳答案
由于一个简单的原因,这是不可能的:script_fields是在搜索的最后阶段(获取阶段)计算的,并且仅针对您检索的记录(默认情况下排在前10位)进行计算。脚本过滤器将应用于之前过滤器未过滤掉的所有记录,并且该脚本过滤器会在获取阶段之前的查询阶段进行。换句话说,当应用过滤器时,script_fields还不存在。