ElasticSearch 使用groovy动态脚本性能低下

发布于 2021-11-30 00:02:13 字数 118 浏览 944 评论 3

由于业务需要,我在ElasticSearch中使用了scriptScore,使用的是Groovy,里面动态从es中取到field的值再代入运算。现在发现这样的操作对CPU消耗非常大,我该怎么解决这个问题呢,我现在用的es版本是2.3.4

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静谧 2021-12-05 10:46:52

夜行侠老师视频教学:es问题汇总
http://www.itjoin.org/
1、如何防止索引被删除
2、搜索的精准性控制
3、解决搜索中英文数字混合
4、搜索中in查询
5、安装问题
6、es源码内部是如何做到插件化扩展
7、统计时展示不全
8、搜索条件过多,内容过长报错
9、索引某一字段内容太大
10、自动补全设计
11、es的分布式如何实现RPC底层
12、es的分片机制
13、head插件的使用
14、es分片和副本级的是原理
15、如何做到只更新部分数据
16、数组在index中如何制定
17、es搜索结果窗口太大
18、group by里如何
19、es底层新增和删除索引的全过程
20、es底层检索的全过

永不分离 2021-12-05 10:26:30

我用的是代码中动态写入的,也就是说每个请求都会编译一遍。脚本大概是这个样子的。 "param1 = 1.0;param1 = param1 + (doc['grade_id'].value==8?0.25:0); 我要怎么做才能提高效率呢?谢谢大侠~~~

笑红尘 2021-12-05 06:03:13

你的脚本是代码中动态写入使用的, 还是提前写的脚本文件函数放在es的类似script目录里?  这两种有一个小差别是,每次请求的都动态编译groovy脚本呢,还是第一次请求时预编译好,以后都不再重复编译。

另外,建议你也试试function score。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文