[英]Ruby On Rails Searchkick gem error: "The difference between max_gram and min_gram in NGram Tokenizer must be less than or equal to: [1]
So I want to use the searchkick gem in my RoR app.所以我想在我的 RoR 应用程序中使用 searchkick gem。 I'm just following the readme on the github page.
我只是按照 github 页面上的自述文件。
https://github.com/ankane/searchkick https://github.com/ankane/searchkick
But when I run Product.reindex
It throws the following error:但是当我运行
Product.reindex
它会抛出以下错误:
Elasticsearch::Transport::Transport::Errors::BadRequest: [400] {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"The difference between max_gram and min_gram in NGram Tokenizer must be less than or equal to: [1] but was [49]. This limit can be set by changing the [index.max_ngram_diff] index level setting."}],"type":"illegal_argument_exception","reason":"The difference between max_gram and min_gram in NGram Tokenizer must be less than or equal to: [1] but was [49]. This limit can be set by changing the [index.max_ngram_diff] index level setting."},"status":400}
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-transport-1.0.6/lib/elasticsearch/transport/transport/base.rb:132:in `__raise_transport_error'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-transport-1.0.6/lib/elasticsearch/transport/transport/base.rb:224:in `perform_request'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-transport-1.0.6/lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-transport-1.0.6/lib/elasticsearch/transport/client.rb:111:in `perform_request'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-api-1.0.6/lib/elasticsearch/api/namespace/common.rb:21:in `perform_request'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/elasticsearch-api-1.0.6/lib/elasticsearch/api/actions/indices/create.rb:77:in `create'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/searchkick-2.5.0/lib/searchkick/index.rb:14:in `create'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/searchkick-2.5.0/lib/searchkick/index.rb:184:in `create_index'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/searchkick-2.5.0/lib/searchkick/index.rb:233:in `reindex_scope'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/searchkick-2.5.0/lib/searchkick/model.rb:72:in `searchkick_reindex'
from (irb):5
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/railties-4.1.16/lib/rails/commands/console.rb:90:in `start'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/railties-4.1.16/lib/rails/commands/console.rb:9:in `start'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/railties-4.1.16/lib/rails/commands/commands_tasks.rb:69:in `console'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/railties-4.1.16/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /home/Hendrik/.rvm/gems/ruby-2.3.7/gems/railties-4.1.16/lib/rails/commands.rb:17:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
It says I can change the values for max_gram, min_gram and max_ngram_diff in the level settings.它说我可以在级别设置中更改 max_gram、min_gram 和 max_ngram_diff 的值。 But I have no Idea what level settings is or where I can find it.
但我不知道关卡设置是什么或在哪里可以找到它。
It looks like you're using an older version of Searchkick.您似乎使用的是旧版本的 Searchkick。 Try upgrading to the latest version.
尝试升级到最新版本。
bundle update searchkick
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.