在mac上使用searchkick和elasticsearch时出现此错误。
Searchkick版本:Searchkick(4.5.2)
$ elasticsearch --version
warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release
Version: 7.10.2-SNAPSHOT, Build: oss/tar/unknown/2021-01-16T01:41:27.115673Z, JVM: 16.0.2
字符串
再现
Product.reindex
4条答案
按热度按时间e5nqia271#
使用monthatch绕过检查。例如在Rails中:
字符串
jmo0nnb32#
如果您使用的是Python elasticsearch客户端,则需要降级或安装7.14.0之前的版本。
字符串
cpjpxq1n3#
它在降级到ElasticSearch< 7.14后运行良好。所以基本上添加了一个gem来限制版本升级
字符串
ar7v8xwq4#
当你的Elasticsearch服务器版本与Ruby的Elasticsearch客户端(
gem elasticsearch
)不匹配时,会引发Elasticsearch::UnsupportedProductError
。为了正确解决这个问题,你需要一个最新的Elasticsearch(ES)版本的服务器这意味着,如果您使用的是像https://cloud.elastic.co/这样的ES提供程序,在那里您使用的是最新版本的集群,那么很容易升级=>服务器升级=>这不是问题
但是,如果您使用提供商在赶上最新ES版本方面很慢(例如AWS Elasticsearch / AWS Opensearch,最新版本为7.10,且不会很快升级),则您唯一的选择是使用
gem elasticsearch, "< 7.14"
(Siddhant的answer in this discussion.其它解决方案可以是通过覆盖方法verify_with_version_or_header来使验证静默,如在https://github.com/elastic/elasticsearch-ruby/issues/1429#issuecomment-958162468
但事实上,这两种解决方案都是“不推荐”的解决方案。真正的解决方案是升级服务器