使用 Elasticsearch 禁用 Hibernate Search 的索引映射创建

Disable index mapping creation for Hibernate Search using Elasticsearch

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

谢谢。

要跳过创建索引定义:

hibernate.search.default.elasticsearch.index_schema_management_strategy none

另见 11.3.4. Hibernate Search configuration

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

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

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