es修改排序_java如何实现ElasticSearch⾃定义排序1、es版本⽤的是5.1由于需要使⽤es的script的inline功能,需要修改es yml的配置⽂件,增加如下配置使其⽀持inline
script.inline: on
script.stored: on
script.file: on
增加完成上述配置需要重启es 注:不同的es版本配置不同
2、java代码
# 定义传⼊script的参数
Map params = new HashMap<>();
Map map=new HashMap();
map.put('1','a');
map.put('2','b');
parans.put('m',map);
# 定义script字符串
String script="id = doc[id].value;return m[id+'']";
# 定义script 注意不同的es版本参数顺序不⼀样小白学java有前途吗
Script script = new Script(ScriptType.INLINE,"groovy",script , params);
# 定义ScriptSortBuilder
ScriptSortBuilder builder = new ScriptSortBuilder(script, sortType).order(sortOrder);
# 设置由spring创建 这⾥不详细说明了
private Client client;
client.prepareSearch()
.
..
.addSort(builder)
...
完成!
本⼈初学es的⼩⽩,有啥问题多多交流哦

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。