调试elasticsearch

Dam*_*che 1 elasticsearch

我正在使用轮胎和弹性搜索.该服务已开始使用端口9200.但是,它返回了2个错误:

"org.elasticsearch.search.SearchParseException: [countries][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"query_string":{"query":"name:"}}}]]"
Run Code Online (Sandbox Code Playgroud)

"Caused by: org.apache.lucene.queryParser.ParseException: Cannot parse 'name:': Encountered "<EOF>" at line 1, column 5."
Run Code Online (Sandbox Code Playgroud)

所以,我重新安装了elasticsearch和服务容器.服务开始很好.

现在,当我使用轮胎搜索时,如果结果出现我没有收到任何结果,我没有收到任何错误消息.

有没有人知道如何找出问题所在,更不用说修复它了?

kar*_*rmi 11

首先,在通常的情况下,你不需要重新索引任何东西.这取决于您如何安装和配置elasticsearch,但是当您安装和升级时,例如.使用Homebrew,数据可以安全地保存.

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

{"query":{"query_string":{"query":"name:"}}}
Run Code Online (Sandbox Code Playgroud)

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

{"query":{"query_string":{"query":"name:foo"}}}
Run Code Online (Sandbox Code Playgroud)

或者,用Ruby术语:

Tire.index('test') { query { string "name:hey" } }
Run Code Online (Sandbox Code Playgroud)

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