ruby-on-rails - 升级到Elasticsearch 7时重新索引错误

标签 ruby-on-rails elasticsearch searchkick

我们目前正在使用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/

相关文章:

Python Elasticsearch,RequestError : TransportError(400, u'search_phase_execution_exception') 间歇性发生。为什么?

elasticsearch - Rails, searchkick (Elasticsearch 2.3) completion suggester 错误

ruby-on-rails - 根据堆栈跟踪的内容触发 Pry 绑定(bind)

sql - 在 Ruby on Rails 中连接 SQL 服务器

ruby-on-rails - 未找到 Ruby gems,但已安装

elasticsearch best_field 和 most_field 有什么区别

elasticsearch - 删除包含特定字符串的日志消息

ruby-on-rails - Searchkick:提高 future 日期

ruby-on-rails - update_all之后的Rails Elastic Search重新索引数据

ruby-on-rails - 回滚所有 rails 迁移或删除表并修改迁移(从头开始)