elasticsearch _script 脚本排序
具体脚本语法请自行搜索“Groovy”语法。
{
"from" : 0,
"size" : 5,
"query" : {
"bool" : {
"filter" : {
"terms" : {
"id" : [ "33009", "30025", "20281", "16221", "103859", "102738" ]
}
}
}
},
"sort" : [ {
"_script" : {
"script" : {
"inline" : "def boolean bo1 = false;def boolean bo2 = false;def zhenghoumc = doc['binganList.zhenghoumc.raw'];def yongyao=doc['binganList.zhenciList.zhongyaozlList.zhongyaozcList.danweiymc.raw'];for(i in 0..<yongyao.size()){if(yongyao[i]!=''){bo1=true;break}};for(i in 0..<zhenghoumc.size()){if(zhenghoumc[i]!=''){bo2=true;break}};bo2==false&&bo1==false?0:(bo2==false&&bo1==true?1:(bo1==true&&bo2==true?10:9))"
},
"type" : "number",
"order" : "desc"
}
} ]
}
boolQuery.filter(QueryBuilders.termsQuery("id", list));
SearchRequestBuilder builder = this.client.prepareSearch("cmhealth1");
builder.setTypes("docase");
builder.setQuery(boolQuery);
// SortBuilder aa = SortBuilders.fieldSort("yongyao").;
// Script aa = new ScriptSortBuilder("''==doc['source'].value?0:1","number").order(SortOrder.ASC);
Script script=new Script("def boolean bo1 = false;def boolean bo2 = false;"
+ "def zhenghoumc = doc['binganList.zhenghoumc.raw'];"
+ "def yongyao=doc['binganList.zhenciList.zhongyaozlList.zhongyaozcList.danweiymc.raw'];"
+ "for(i in 0..<yongyao.size()){if(yongyao[i]!=''){bo1=true;break}};"
+ "for(i in 0..<zhenghoumc.size()){if(zhenghoumc[i]!=''){bo2=true;break}};"
+ "bo2==false&&bo1==false?0:(bo2==false&&bo1==true?1:(bo1==true&&bo2==true?10:9))");
ScriptSortBuilder scriptSortBuilder = SortBuilders.scriptSort(script, "number").order(SortOrder.DESC);
// builder.addSort("binganList.zhenghoumc", SortOrder.DESC);
builder.addSort(scriptSortBuilder);
builder.setFrom(pageNum);
builder.setSize(pageSize);
SearchResponse response = builder.get();
elasticsearch _script 脚本排序的更多相关文章
- elasticsearch开启脚本及使用
开启script: Scripting settingsedit The script.disable_dynamic node setting has been replaced by fine-g ...
- Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)
一.先摆需求: 1.中文搜索.英文搜索.中英混搜 如:"南京东路","cafe 南京东路店" 2.全拼搜索.首字母搜索.中文+全拼.中文+首字母混搜 如 ...
- Elasticsearch 实现自定义排序插件
插件入口: package ttd.ugc.plugin; import org.elasticsearch.plugins.Plugin;import org.elasticsearch.scrip ...
- 删除elasticsearch索引脚本
只保留七天的索引 shell版 #!/bin/bash #hexm@ #只保留一周es日志 logName=( -nginxaccesslog -nginxerrorlog -phperrorlog ...
- ElasticSearch中设置排序Java
有用的链接:http://stackoverflow.com/questions/12215380/sorting-on-several-fields-in-elasticsearch 有的时候,需要 ...
- elasticsearch 权威指南排序阅读笔记(六)
默认排序 默认查询是通过_source 准确性权重来排序 字段排序 { "query":{ "match":{ "productName": ...
- elasticsearch备份脚本
1.主要文件 [root@k8s elasticsearch]# tree . ├── backup_es.sh ├── indices_file.txt ├── recover_es.sh └── ...
- elasticsearch painless脚本评分
painless是一种新支持的脚本语言,语言格式和java十分类似.可以参考以下文档: painless语言介绍 painless api painless 实例 脚本参数 score_mode计算f ...
- ElasticSearch(7)-排序
引用自ElaticSearch权威指南 一.排序 相关性排序 默认情况下,结果集会按照相关性进行排序 -- 相关性越高,排名越靠前. 这一章我们会讲述相关性是什么以及它是如何计算的. 在此之前,我们先 ...
随机推荐
- HDU 6124 17多校7 Euler theorem(简单思维题)
Problem Description HazelFan is given two positive integers a,b, and he wants to calculate amodb. Bu ...
- pprof进行golang程序性能分析
一.导入包 import _ "net/http/pprof" 二.启动监控routine go func() { http.ListenAndServe("0.0.0. ...
- sqlplus/rman登录报权限错误ORA-01031/ORA-04005/0RA-00554
安装Weblogic误操作对Oracle用户属组进行了修改 --本地sqlplus登录报错权限问题??? [oracle@enmo admin]$ sqlplus / as sysdba SQL*Pl ...
- scrapy框架持久化存储
基于终端指令的持久化存储 基于管道的持久化存储 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文 ...
- UDP方式实现广域网的P2P通信
最近在研究P2P通信,希望能够穿透路由器. 当前的做法只是使用TCP协议进行客户端与服务器端通信,使用UDP协议进行客户端之间的打洞操作,UDP的方式的源码在下方. 一直没有实现TCP的打洞,如果有实 ...
- 20155219 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一.实验内容及步骤 1.使用JDK编译.运行简单的java程序 先在命令行中按老师要求输入,之后编译运行,如下图. 具体代码如下: package src.shiyan1; import java.u ...
- thinkphp error:no database select
配置正确,项目运行时确出现,no database selected . 解决方法: 需要清除 /App/Runtime runtime~.php文件
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...
- 《DSP using MATLAB》Problem 6.17
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- spring模拟ioc
非spring 开发 public class UserService { private UserDao userDao=new UserDaoImpl(); public void addUser ...