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

时间:2017-12-29 05:54:34

标签: elasticsearch hibernate-search

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

谢谢。

2 个答案:

答案 0 :(得分:0)

要跳过创建索引定义:

hibernate.search.default.elasticsearch.index_schema_management_strategy none

另见11.3.4. Hibernate Search configuration

答案 1 :(得分:0)

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

一种解决方案是预先创建索引。毕竟,如果你没有添加模板,为什么不添加索引呢?

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