我使用以下命令在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
我已在错误图片下方粘贴
我想知道这个错误的原因。语法似乎正确。感谢您的帮助!谢谢!
最佳答案
我相信您需要解决两个问题:
配置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/