使用 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
您可以完全禁用索引 和 映射创建(请参阅 Sanne 的回答),但您当前不能要求 Hibernate Search 在不创建映射的情况下创建索引。
一个解决方案是让您预先创建索引。毕竟,如果您可以添加模板,为什么不也添加索引呢?
另一个解决方案:您可以尝试 update
策略。如果您的自定义映射与 Hibernate Search 生成的映射兼容,它们可能会简单地合并。不过要小心 不要在生产中使用它 ,因为 update
策略的失败会给你带来很大的麻烦(参见 the warnings in the documentation)。
我正在为 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
您可以完全禁用索引 和 映射创建(请参阅 Sanne 的回答),但您当前不能要求 Hibernate Search 在不创建映射的情况下创建索引。
一个解决方案是让您预先创建索引。毕竟,如果您可以添加模板,为什么不也添加索引呢?
另一个解决方案:您可以尝试 update
策略。如果您的自定义映射与 Hibernate Search 生成的映射兼容,它们可能会简单地合并。不过要小心 不要在生产中使用它 ,因为 update
策略的失败会给你带来很大的麻烦(参见 the warnings in the documentation)。