elasticsearch是否支持条件查询?

Kar*_*ick 1 elasticsearch

我知道solr支持查询中的条件(例如fl=if(min(2,myField),2,myField)).我无法在elasticsearch中找到类似的功能.我能找到的最接近的是脚本字段.

  1. elasticsearch是否支持嵌套函数查询min(max(myField,0),1)
  2. 如果是这样,它是否也支持这样的排序查询,比如sort=min(max(myField,0),1)

jav*_*nna 5

脚本是您正在寻找的.默认的脚本语言是mvel,但您可以轻松安装支持其他语言的插件,如javascript,groovy,python.您也可以用Java编写自己的本机脚本.

您可以在不同的apis中使用脚本,以下是一些示例:

可以从文档页面预加载将它们放在文件系统上的脚本:

脚本始终可以作为相关API的一部分提供,但也可以通过将它们放在config/scripts脚本名称之前预先加载它们,然后通过脚本名称引用它们(而不是提供完整的脚本).这有助于减少客户端和节点之间传递的数据量.

脚本的名称源自它所在目录的层次结构,以及没有lang扩展名的文件名.例如,放置在下面的脚本config/scripts/group1/group2/test.py 将被命名group1_group2_test.

只有用java编写的本机脚本才能实现接口.如果是mvel,javascript python或groovy,你可以在文件中编写你需要的脚本,而不是将它与相关的API一起传递,并使用它的名称来引用它.