社区
其他数据库
帖子详情
如何用Java实现Elasticsearch脚本排序
sky我的世界
2020-10-25 05:31:03
如下图所示的查询语句,用Java如何实现呀 我百度了官网也没看到如何实现,我用的是ES6.5.3 跪求
...全文
1113
2
打赏
收藏
如何用Java实现Elasticsearch脚本排序
如下图所示的查询语句,用Java如何实现呀 我百度了官网也没看到如何实现,我用的是ES6.5.3 跪求
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sky我的世界
2020-10-26
打赏
举报
回复
1
解决了 参考: 通过脚本排序 数据内容: "_source": { "userid": 123, "city": [ 102 ], "expection2": [ 2496 ], "sex": 1, "age": 31, "cate_score": [ "580:0.9", "581:0.5", "593:0.2", "706:0.1", "606:0.65" ], "lmodtime": 1459347878, } } 1 2 根据业务方传入的类型数据去cate_score字段里面去找,如果找到对应的类型那么根据返回的类型数据进行排序。比如传入580那么所有的数据按照cate_score中580的数据分值数据去排序 String scriptCode="脚本内容"; System.out.println(scriptCode); Map<String, Object> params = new HashMap<>(); params.put("cate", 606); Script script = new Script(ScriptType.INLINE,"painless",scriptCode,params); SortBuilder sortBuilder = SortBuilders.scriptSort(script, ScriptSortBuilder.ScriptSortType.NUMBER); sortBuilder.order(SortOrder.DESC); SearchSourceBuilder sb = new SearchSourceBuilder(); sb.sort(sortBuilder); System.out.println(sb.toString()); SearchResponse search = client.search(new SearchRequest(new String[] { "supin_index_test" }, sb)); SearchHit[] hits = search.getHits().getHits(); for (SearchHit hit : hits) { System.out.println(hit.getSourceAsMap()); } painless脚本: int size = doc['cate_score.keyword'].length; double score = -0.1; int targetCate = params.cate; for (int i = 0; i < size; i++) { def path = doc['cate_score.keyword'][i]; int flag = path.lastIndexOf(':'); double get_score = Double.parseDouble(path.substring(flag + 1)); int get_cate = Integer.parseInt(path.substring(0, flag)); if (get_cate == targetCate) { score = get_score; break; } } return score
sky我的世界
2020-10-26
打赏
举报
回复
急求大佬解答!!!
elasticsearch
Java
代码
实现
本主题聚焦于“
Elasticsearch
Java
代码
实现
”,将深入探讨如何使用
Java
API来执行基本的操作,如创建索引、删除索引、更新索引、模糊搜索以及模糊全文搜索和精确查找。 首先,让我们从`ESManager.
java
`开始,这个类...
sort-script:
elasticsearch
排序
脚本
首先,了解如何在
Elasticsearch
中使用
脚本
排序
。在搜索请求中,你可以定义一个"script"字段,指定
排序
使用的
脚本
。
脚本
可以计算某个字段的值,或者涉及多个字段的运算。例如,假设我们有一个商品索引,希望根据商品...
elasticsearch
离线
JAVA
API文档下载
在开始使用
Java
API之前,需要将
Elasticsearch
的
Java
库添加到项目的依赖管理中。对于Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml <groupId>org.
elasticsearch
.client <artifactId>
elasticsearch
-...
java
如何调用
Elasticsearch
(连接、查询、分页、
排序
、统计、模糊匹配、精准匹配、文字高亮)源码
本篇文章将详细讲解如何使用
Java
API来调用
Elasticsearch
,涉及连接、查询、分页、
排序
、统计、模糊匹配、精准匹配以及文字高亮等核心操作。 首先,连接
Elasticsearch
需要引入相关的依赖库。在Maven项目中,可以在...
ElasticSearch
Java
中文文档 5.6
ElasticSearch
5.6版的
Java
API中文文档是针对
Java
开发者使用
ElasticSearch
的指导手册,它不仅翻译了官方文档,还包含了实际使用中遇到的问题和解决方案。 从文件内容来看,文档涉及到
ElasticSearch
Java
客户端的多...
其他数据库
2,209
社区成员
9,519
社区内容
发帖
与我相关
我的任务
其他数据库
其他数据库开发 其他数据库
复制链接
扫一扫
分享
社区描述
其他数据库开发 其他数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章