Elasticsearch 最佳实践

标签 elasticsearch

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-提前定义您的映射和索引,不要选择自动创建选项。

  1. 应定义数据类型
  2. 将金额定义为 sclaed_float,精度为 100
  3. 所有数字字段都应定义为 long,以便查询“之间”、“排序”或聚合。
  4. 仔细选择关键字和文本字段类型。在必要的地方使用文字。

3- 如果您一次又一次更新同一条记录,请定义外部版本,以避免使用过时的数据进行更新。

关于Elasticsearch 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50591165/

相关文章:

elasticsearch - ELASTICSEARCH-多个字段上的Filter_path

ruby-on-rails - 耐嚼RSpec测试-预期索引 `client#person_client`将被更新,但是没有更新

Elasticsearch - 如何返回某些字段的不同文档

elasticsearch - CouchBase复制错误到 Elasticsearch

使用两个字段的 Elasticsearch 日期范围查询

elasticsearch - 如何动态定义/覆盖 elasticsearch 中的_default_ 映射?

elasticsearch - 一些属性无法在Elasticsearch 7.4上进行过滤。如何过滤它们?

elasticsearch - 在远程计算机上运行单个节点Elasticsearch进行开发

django-models - 在 Django 中使用 Elasticsearch 作为数据库

elasticsearch - 如何为快速变化的数据构建 Elasticsearch 索引?