我们目前正在使用searchkick gem,它的效果很好。最近,我尝试在本地开发环境中将elasticsearch升级到7。我使用自制软件启动并运行了(在研究了我需要运行rm -fr /usr/local/var/lib/elasticsearch
之后)。当我重新索引其中一个模型时,出现以下映射错误:Elasticsearch::Transport::Transport::Errors::BadRequest: [400] {"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]","caused_by":{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [cosmetics/products : {properties={product={type=keyword}}}]"}},"status":400}
使用elasticsearch 6.8.4时不会发生此错误。谁能指出我解决该问题的资源?
最佳答案
版本7不支持映射类型。
要解决此问题,请删除所有映射类型(例如,_doc)
在Elasticsearch 6.0.0或更高版本中创建的索引只能包含一个映射类型。在5.x中创建的具有多种映射类型的索引将继续像在Elasticsearch 6.x中一样工作。类型将在Elasticsearch 7.0.0中的API中弃用,并在8.0.0中完全删除。
Check this out
And this
关于ruby-on-rails - 升级到Elasticsearch 7时重新索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58629372/