【问题标题】:Disable index mapping creation for Hibernate Search using Elasticsearch禁用使用 Elasticsearch 为 Hibernate Search 创建索引映射
【发布时间】:2018-01-03 17:03:47
【问题描述】:

我正在为 Elasticsearch (5.8.2.Final) 和 Elasticsearch (6.0) 使用 Hibernate Search。我是新的 Hibernate Search,我知道 Hibernate Search for Elasticsearch 是实验性的。我也知道 Hibernate 6 将为 ES 的使用带来一些改进。但是,与此同时,我发现注释不允许我创建我想要的索引映射类型,我想知道是否有办法完全禁用索引映射的创建。我想允许 ES 在 Hibernate 首次创建索引时将索引模板应用于我的索引。我已经阅读了文档并逐步完成了代码,但我没有看到任何可以让我这样做的东西。这可能吗?

谢谢。

【问题讨论】:

  • 我找到了解决问题的方法。我能够创建一个索引模板并将其应用于由 Hibernate Search 创建的映射之上。然而,这并没有回答我最初关于能够禁用索引映射创建的问题。

标签: elasticsearch hibernate-search


【解决方案1】:

您可以完全禁用索引映射创建(请参阅 Sanne 的回答),但目前您不能要求 Hibernate Search 在不创建映射的情况下创建索引。

一种解决方案是让您事先创建索引。毕竟,如果您可以添加模板,为什么不添加索引呢?

另一种解决方案:您可以尝试update 策略。如果您的自定义映射与 Hibernate Search 生成的映射兼容,它们可能会简单地合并。但是请注意不要在生产环境中使用它,因为 update 策略的失败会给您带来很大的麻烦(请参阅 the warnings in the documentation)。

【讨论】:

  • 我回来提到了关于禁用管理它也不会创建索引的问题。我更喜欢它是否会创建索引,那么我需要做的就是自己处理模板,但现在必须这样做。谢谢
【解决方案2】:

跳过创建索引定义:

hibernate.search.default.elasticsearch.index_schema_management_strategy none

另见11.3.4. Hibernate Search configuration

【讨论】:

  • 无论出于何种原因,当我最初阅读该设置时,我将其视为完全不同的东西。我会试一试并报告。
  • 这也禁用了索引创建,我猜这不是世界末日,但如果有更好的选项来彻底控制映射,我相信这将在未来的版本中出现。感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
相关资源
最近更新 更多