我正在使用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;
是否有可能在创建索引后应用索引设置。如果不是的话,你会推荐什么除了减少领域(我知道有这么多领域的风险)?
1条答案
按热度按时间4zcjmb1e1#
您应该事先创建索引模板:您在创建索引之前使用适当的设置定义模板,而elasticsearch将在hibernate search创建索引时自动应用这些设置。
看到了吗https://www.elastic.co/guide/en/elasticsearch/reference/5.6/indices-templates.html
注意HibernateSearch5仍然会在启动时创建索引,因此您需要在启动应用程序之前,使用shell脚本和
curl
,例如。