1) 我们对 Elasticsearch 还很陌生。在我们的 Spring Boot 应用程序中,我们使用基于内存节点客户端的 Spring Elasticsearch。插入/更新/删除发生在我们的主关系数据库 (DB2) 上,我们仅使用 Elasticsearch 来处理搜索。我们有一个同步机制,可以让 Elastic Search 保持最新的变化
2) 在生产中,我们有 4 个应用程序实例正在运行。为了同步所有 4 台服务器上的内存中弹性存储,我们有一个 JMS 主题,所有 DB2 更新都发布在其中。应用程序有一个主题监听器,它将使用发布到此 JMS 主题的任何数据库更改并更新内存中的弹性存储。
问题:
i) 以上是在您的应用程序中实现 Elasticsearch 的理想方法吗?如果没有,您还有什么建议?
ii) 您可以向我们推荐任何 Elasticsearch 最佳实践吗?
非常感谢!
最佳答案
1- 在 Prod 中,选择 3 个主节点和 4 个数据节点。服务器总数始终为奇数
2-提前定义您的映射和索引,不要选择自动创建选项。
- 应定义数据类型
- 将金额定义为 sclaed_float,精度为 100
- 所有数字字段都应定义为 long,以便查询“之间”、“排序”或聚合。
- 仔细选择关键字和文本字段类型。在必要的地方使用文字。
3- 如果您一次又一次更新同一条记录,请定义外部版本,以避免使用过时的数据进行更新。
关于Elasticsearch 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50591165/