一尘不染

调试elasticsearch

elasticsearch

我正在使用Tire和elasticsearch。该服务已开始使用端口9200。但是,它返回2个错误:

"org.elasticsearch.search.SearchParseException: [countries][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"query_string":{"query":"name:"}}}]]"

"Caused by: org.apache.lucene.queryParser.ParseException: Cannot parse 'name:': Encountered "<EOF>" at line 1, column 5."

因此,我重新安装了elasticsearch和服务容器。服务开始正常。

现在,当我使用轮胎搜索时,应显示结果时没有任何结果, 并且 没有收到 任何 错误消息。

有人知道我怎么能找出问题所在,更不用说解决它了吗?


阅读 277

收藏
2020-06-22

共1个答案

一尘不染

首先,在通常情况下, 您不需要重新索引任何内容 。这取决于您如何安装和配置 elasticsearch ,但是取决于安装和升级的时间。使用
Homebrew

,数据可以安全保存。

其次, 无需重新安装 任何东西。您所看到的错误意味着它在锡纸上的含义:SearchParseException。您的查询无效:

{"query":{"query_string":{"query":"name:"}}}

请注意,您没有为名称限定符传递任何查询字符串。您必须传递一些东西,例如:

{"query":{"query_string":{"query":"name:foo"}}}

或者,用Ruby术语:

Tire.index('test') { query { string "name:hey" } }

有关如何捕获由于不正确的Lucene查询而导致的错误的示例,请参见Tire上Railscasts情节的此更新

2020-06-22