我在rails应用程序中使用gem chewy,在elasticsearch中创建索引和搜索。以前我用的是ElasticSearch5.6版,现在我想升级到7.7版。当我试图创建一个索引,我得到下面的错误。我正在使用的升级版 5.1.0
```
Elasticsearch::Transport::Transport::Errors::BadRequest: [400] {"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [country : {value={}}] [city : {value={}}] [state : {value={}}]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [country : {value={}}] [city : {value={}}] [state : {value={}}]","caused_by":{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [country : {value={}}] [city : {value={}}] [state : {value={}}]"}},"status":400}
但是,它在5.6中运行得非常好。我试图在chewy中找到任何更改日志,但没有找到任何更改日志。请帮助我了解问题所在。谢谢
2条答案
按热度按时间tzdcorbm1#
这是由于在最新版本的elasticsearch中删除了类型。您需要更改Map和索引定义以解决此问题。
另外,如果要从5.x迁移到7.7,请参阅根据版本的删除类型计划以及需要执行哪些步骤。
vmpqdwk32#
正如ElasticSearchNinja所建议的,这种情况的发生是由于elasticsearch最新版本中删除了类型。
从今天(2020年10月19日)起,chewy不支持7.x或6.x
裁判:https://github.com/toptal/chewy/issues/609 以及https://github.com/toptal/chewy/issues/673
建议对ruby或rails使用es的官方标准包。https://github.com/elastic/elasticsearch-ruby 或者https://github.com/elastic/elasticsearch-rails