在创建索引时应用索引配置

gkn4icbw  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(401)

我正在使用HibernateSearchElasticSearch5.11.5,我达到了一个索引限制——字段总数限制,默认为1000。我需要增加这个限制,不幸的是这是一个索引限制,这意味着它必须在索引创建之后设置。因为我有1000多个字段,所以在创建Map时发生了一个错误。问题是创建索引Map的请求是在创建索引之后执行的,我看不到在创建Map之前应用索引设置的方法。以下是elasticsearchindexmanager类中处理索引和Map创建的代码:

case DROP_AND_CREATE:
 case DROP_AND_CREATE_AND_DROP:
        ElasticsearchSchemaDropper schemaDropper = elasticsearchService.getSchemaDropper();
            schemaDropper.dropIfExisting( actualIndexName, schemaManagementExecutionOptions );
            schemaCreator.createIndex( indexMetadata, schemaManagementExecutionOptions );
            schemaCreator.createMappings( indexMetadata, schemaManagementExecutionOptions );
            createdIndex = true;
            break;

是否有可能在创建索引后应用索引设置。如果不是的话,你会推荐什么除了减少领域(我知道有这么多领域的风险)?

4zcjmb1e

4zcjmb1e1#

您应该事先创建索引模板:您在创建索引之前使用适当的设置定义模板,而elasticsearch将在hibernate search创建索引时自动应用这些设置。
看到了吗https://www.elastic.co/guide/en/elasticsearch/reference/5.6/indices-templates.html
注意HibernateSearch5仍然会在启动时创建索引,因此您需要在启动应用程序之前,使用shell脚本和 curl ,例如。

相关问题