ruby-on-rails - 在cloud9中运行elasticsearch/searchkick的Searchkick::InvalidQueryError 400错误?

标签 ruby-on-rails ruby elasticsearch searchkick

我使用以下命令在cloud9中运行 Elasticsearch

./elasticsearch -E http.port=8081

然后我通过运行curl检查状态
 curl 127.0.0.1:8081

它返回
{
  "name" : "JgfOdbe",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "zELSmBAIStOB1VNaOz1C-Q",
  "version" : {
    "number" : "6.1.1",
    "build_hash" : "bd92e7f",
    "build_date" : "2017-12-17T20:23:25.338Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

现在我创建书架并创建几本书

在图书 Controller 中,我创建一种测试方法
def index
    @books = Book.search("test", fields: [:title])
end

当我调用索引操作时,它返回错误
Searchkick::InvalidQueryError in BooksController#index

我已在错误图片下方粘贴

enter image description here

我想知道这个错误的原因。语法似乎正确。感谢您的帮助!谢谢!

最佳答案

我相信您需要解决两个问题:

配置Elasticsearch端点

由于您使用的端口(8081)与默认端口(9200)不同,因此应将ELASTICSEARCH_URL环境变量设置为该端口:

ENV["ELASTICSEARCH_URL"] = "http://localhost:8081"

关于此的文档在这里:https://github.com/ankane/searchkick#deployment

汇入资料

之后,您需要通过以下方式将数据从索引中获取到Elasticsearch:
Book.reindex

该文档也位于此处:https://github.com/ankane/searchkick#getting-started

关于ruby-on-rails - 在cloud9中运行elasticsearch/searchkick的Searchkick::InvalidQueryError 400错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48024170/

相关文章:

ruby 隐藏控制台

ruby-on-rails - rails 4 asset pipeline assets.rb 重构问题

python-2.7 - Python Api在Elasticsearch中删除doc_type

ruby-on-rails - Rails devise-jwt session 存储

ruby - 为 nil :NilClass"in Ruby for optional associations? 处理每个 "undefined method ` 的优雅方式

ruby-on-rails - sassc-rails Assets 更改未被编译

c# - 如何将一个not_analyzed字段添加到Elasticsearch中

angular - Firebase Firestore使用带有内置查询的外部服务来进行全文搜索

ruby-on-rails - 在 ROR 中的 link_to 中使用翻译

ruby-on-rails - 在我的 Rails 应用程序的子目录中运行时图像路径错误