2012-01-05 12 views
1

我正在使用輪胎和elasticsearch。這項服務已經開始使用端口9200。然而,它返回2個錯誤:調試elasticsearch

"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和服務容器。服務開始正常。

現在,當我搜索使用輪胎我沒有得到任何結果時,結果應該會出現我沒有收到任何錯誤消息。

有沒有人有任何想法我可能會發現什麼是錯的,更不用說修復它了?

+0

重新安裝後重新編制數據嗎? – skaffman 2012-01-05 17:09:21

+0

不知道:)謝謝! – 2012-01-05 17:26:18

回答

11

首先,在通常情況下,您不需要重新編制任何東西。這取決於你如何安裝和配置elasticsearch,但是當你安裝和升級例如。與Homebrew,數據安全地堅持。

二,不需要重新安裝什麼。你所看到的錯誤意味着它在錫上所說的:SearchParseException,即。您的查詢無效:

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

請注意,您沒有爲名稱限定符傳遞任何查詢字符串。你必須通過一些東西,例如:

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

,或者在Ruby中的術語:

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

爲例如何捕捉由於不正確的Lucene查詢錯誤請參見this update to the Railscasts episode on Tire