mac环境使用Searchkick搭配Elasticsearch出现UnsupportedProductError报错如何解决
问题原因
这个报错是Elastic官方在7.14及以上版本的elasticsearch-ruby客户端中新增了分发版校验逻辑,会拒绝对接非官方商业版的Elasticsearch服务。你当前使用的是7.10.2的OSS快照版Elasticsearch,而Searchkick 4.5.2默认依赖的elasticsearch-ruby版本刚好触发了该校验逻辑,因此执行Product.reindex操作时会报错。
可执行的解决方案
你可以任选以下任一方案处理:
- 方案1:锁定
elasticsearch-ruby版本到无校验逻辑的版本
在项目的Gemfile中添加如下声明:
之后在项目根目录执行gem 'elasticsearch', '<= 7.13.3'bundle update elasticsearch重启服务即可生效。 - 方案2:添加初始化补丁跳过校验逻辑
在项目config/initializers目录下新建elasticsearch.rb文件,写入如下代码:
重启Rails服务后即可生效,不需要修改依赖版本。module Elasticsearch class Client def verify_elasticsearch # 跳过官方分发版校验 end end end - 方案3:替换本地Elasticsearch版本
卸载当前的OSS快照版Elasticsearch,重新安装官方正式发布的非OSS版7.10.2,或是切换为OpenSearch(原Elasticsearch OSS分支衍生的开源发行版,Searchkick原生支持),也可以解决该问题。
内容的提问来源于stack exchange,提问作者Siddhant
相关产品推荐
相关产品推荐

