使用以下类型的脚本在0.2工作,但现在无法在0.9:弹性搜索类型的脚本不工作后升级
{
"_script": {
"script": "org.elasticsearch.common.Digest.md5Hex(doc['myId'].value + 12345)",
"type": "string",
"order": "asc"
}
}
我收到的错误是:
PropertyAccessException[[Error: unresolvable property or identifier: org]
我所看到的帖子建议创建一个自定义分数查询来完成这项工作,所以有一点额外的信息。我已经使用了自定义分数查询,这种排序是匹配时的次要排序,可以(也应该)定期发生。例子中的常数以上是基于执行搜索的人所以每个谁搜索人得到一个随机的,但一致的排序,我们不总是显示在顶部每个人都是一样的结果。
我找不到任何有关为何发生这种情况的信息,以及如何在保留相同排序功能的同时修复它。任何帮助或指引我在一个新的方向将不胜感激。
看起来你必须创建和注册自定义的Java脚本和查询(也提供了“郎”:“原生”参数)引用它。 我绝不是Java专家,但没有对如何创建这样的脚本一个很好的教程:https://github.com/imotov/elasticsearch-native-script-example 退房随机排序脚本到底,因为它似乎成为你需要的东西。 –
感觉就像任何非MVEL脚本必须作为插件来实现;内联脚本不允许用于非MVEL脚本。任何人都可以证实吗? –
我也尝试过js - 你仍然需要安装一个插件来启用js支持,但是你可以做内联表达式:“sort”:{ “_script”:{ “script”:“doc ['date'] .value *因子+ 'anyvaluehere”', “类型”: “串”, “PARAMS”:{ “因子”:1.1 }, “顺序”: “ASC”, “郎”: “JS” }} –