CSDN热搜
刚开始接触 Elasticsearch 时,我觉得它就像个黑盒子——数据往里一扔,查询语句一写,结果就出来了。直到负责公司核心业务的搜索模块后,我才发现这个黑盒子里面藏着无数需要注意的细节。
请根据业务数据量和业务要求,选择最适合的分片拆分规则 和routing key路由算法,同时不要因为拆分不合理,导致ES节点中存在大量分片。 ES默认单节点分片最大值为1000(7.0版本后),可以参考ES官方建议,堆内存分片数量维持大约1:20的比例
提示:ES7.9前后版本wildcard的具体介绍,可以参考我的上一篇文章 《与产品经理的“模糊”对决:Elasticsearch实现MySQL LIKE '%xxx%'》
补充说明:如果需要更新后立即能查询到,通常有两种方案: 让前端直接展示刚提交的数据,等下一次调用接口时再查询 ES 更新完后,前端延迟 1.5 秒后再查询 关键点:业务需求不一定都要后端实现,可以结合前端一起考虑解决方案。
如果有人问我:"ES 怎么才能用得更好?"我的回答是:"先理解业务场景,再选择技术方案。就像我们之前做的模糊搜索,不是简单地用 wildcard,而是根据 ES 版本选择最优解。"
掘金原文(个人技术文章优先在掘金发布):https://juejin.cn/post/7569959427879567370
使用道具 举报
本版积分规则 回帖并转播 回帖后跳转到最后一页
程序园优秀签约作者
0
粉丝关注
19
主题发布