我正在使用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和服务容器。服务开始正常。
现在,当我使用轮胎搜索时,应显示结果时没有任何结果, 并且 没有收到 任何 错误消息。
有人知道我怎么能找出问题所在,更不用说解决它了吗?
首先,在通常情况下, 您不需要重新索引任何内容 。这取决于您如何安装和配置 elasticsearch ,但是取决于安装和升级的时间。使用 Homebrew ,数据可以安全保存。
其次, 无需重新安装 任何东西。您所看到的错误意味着它在锡纸上的含义:SearchParseException。您的查询无效:
SearchParseException
{"query":{"query_string":{"query":"name:"}}}
请注意,您没有为名称限定符传递任何查询字符串。您必须传递一些东西,例如:
{"query":{"query_string":{"query":"name:foo"}}}
或者,用Ruby术语:
Tire.index('test') { query { string "name:hey" } }
有关如何捕获由于不正确的Lucene查询而导致的错误的示例,请参见Tire上Railscasts情节的此更新。