ruby Elasticsearch:SearchPhaseExecutionException/解析失败
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22158738/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Elasticsearch: SearchPhaseExecutionException/Parse Failure
提问by user2158382
I ran the following query on elasticsearch
我在elasticsearch上运行了以下查询
curl -X GET "http://localhost:9200/games_201403031340/_search?pretty=true" -d '{
"query" : {
"field" : { "title": "ca" }
}
}'
And I got this error as a result
结果我得到了这个错误
"error" : "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[znmo0cd5Q3S2_ymuDANqKw][games_201403031340][1]: SearchParseException[[games_201403031340][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\" : {\n \"field\" : { \"title\": \"ca\" }\n }\n}]]]; nested: QueryParsingException[[games_201403031340] No query registered for [field]]; }{[znmo0cd5Q3S2_ymuDANqKw][games_201403031340][2]: SearchParseException[[games_201403031340][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\" : {\n \"field\" : { \"title\": \"ca\" }\n }\n}]]]; nested: QueryParsingException[[games_201403031340] No query registered for [field]]; }{[znmo0cd5Q3S2_ymuDANqKw][games_201403031340][0]: SearchParseException[[games_201403031340][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\" : {\n \"field\" : { \"title\": \"ca\" }\n }\n}]]]; nested: QueryParsingException[[games_201403031340] No query registered for [field]]; }{[znmo0cd5Q3S2_ymuDANqKw][games_201403031340][4]: SearchParseException[[games_201403031340][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\" : {\n \"field\" : { \"title\": \"ca\" }\n }\n}]]]; nested: QueryParsingException[[games_201403031340] No query registered for [field]]; }{[znmo0cd5Q3S2_ymuDANqKw][games_201403031340][3]: SearchParseException[[games_201403031340][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"query\" : {\n \"field\" : { \"title\": \"ca\" }\n }\n}]]]; nested: QueryParsingException[[games_201403031340] No query registered for [field]]; }]",
"status" : 400
}
This also was in my elasticsearch log
这也在我的弹性搜索日志中
[2014-03-03 14:19:15,008][DEBUG][action.search.type ] [Susan Storm] [games_201403031340][1], node[znmo0cd5Q3S2_ymuDANqKw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@f799344] lastShard [true]
org.elasticsearch.search.SearchParseException: [games_201403031340][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query" : {
"field" : { "title": "ca" }
}
}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:586)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:489)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:474)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:467)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:239)
at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202)
at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:203)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.run(TransportSearchTypeAction.java:186)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.elasticsearch.index.query.QueryParsingException: [games_201403031340] No query registered for [field]
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:221)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:321)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:260)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:574)
... 12 more
[2014-03-03 14:19:15,008][DEBUG][action.search.type ] [Susan Storm] [games_201403031340][2], node[znmo0cd5Q3S2_ymuDANqKw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@f799344] lastShard [true]
org.elasticsearch.search.SearchParseException: [games_201403031340][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query" : {
"field" : { "title": "ca" }
}
}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:586)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:489)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:474)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:467)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:239)
at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202)
at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:203)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.run(TransportSearchTypeAction.java:186)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.elasticsearch.index.query.QueryParsingException: [games_201403031340] No query registered for [field]
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:221)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:321)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:260)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:574)
... 12 more
[2014-03-03 14:19:15,008][DEBUG][action.search.type ] [Susan Storm] [games_201403031340][4], node[znmo0cd5Q3S2_ymuDANqKw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@f799344]
org.elasticsearch.search.SearchParseException: [games_201403031340][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query" : {
"field" : { "title": "ca" }
}
}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:586)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:489)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:474)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:467)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:239)
at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202)
at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:203)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.run(TransportSearchTypeAction.java:186)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.elasticsearch.index.query.QueryParsingException: [games_201403031340] No query registered for [field]
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:221)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:321)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:260)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:574)
... 12 more
[2014-03-03 14:19:15,009][DEBUG][action.search.type ] [Susan Storm] All shards failed for phase: [query]
[2014-03-03 14:19:15,008][DEBUG][action.search.type ] [Susan Storm] [games_201403031340][0], node[znmo0cd5Q3S2_ymuDANqKw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@f799344] lastShard [true]
org.elasticsearch.search.SearchParseException: [games_201403031340][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query" : {
"field" : { "title": "ca" }
}
}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:586)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:489)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:474)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:467)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:239)
at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202)
at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:203)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.run(TransportSearchTypeAction.java:186)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.elasticsearch.index.query.QueryParsingException: [games_201403031340] No query registered for [field]
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:221)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:321)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:260)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:574)
... 12 more
[2014-03-03 14:19:15,008][DEBUG][action.search.type ] [Susan Storm] [games_201403031340][3], node[znmo0cd5Q3S2_ymuDANqKw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@f799344] lastShard [true]
org.elasticsearch.search.SearchParseException: [games_201403031340][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query" : {
"field" : { "title": "ca" }
}
}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:586)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:489)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:474)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:467)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:239)
at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202)
at org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:203)
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.run(TransportSearchTypeAction.java:186)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.elasticsearch.index.query.QueryParsingException: [games_201403031340] No query registered for [field]
at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:221)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:321)
at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:260)
at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:574)
... 12 more
Not sure whats going on, but I have no problem running a query like...
不知道发生了什么,但我运行查询没有问题......
curl -X POST localhost:9200/games_201403031340/_suggest?pretty=true -d '
{
? "apple_game" : {
? ? "text" : "m",
? ? "completion" : {
? ? ? "field" : "title"
? ? }
? }
}'
回答by Christopher R
You also get this error when you run out of disk space on your Elastic Search volume.
当您的 Elastic Search 卷上的磁盘空间不足时,您也会收到此错误。
回答by Thiago Bussiki
Executing in Marvel/Sense, search for spaceafter /_search command. This to trigger an Parse Exception too.
在 Marvel/Sense 中执行,搜索/_search 命令后的空间。这也会触发解析异常。
回答by Babken Vardanyan
Check that your Elastic server has enough free disk space/RAM.
检查您的弹性服务器是否有足够的可用磁盘空间/RAM。
For me the disk space was the problem.
对我来说,磁盘空间是问题所在。
回答by blisher
For me the problem was no record for one of tables included in Searchkick. Make sure you have at least one record in each table, then rake db:reindex:alland try again.
对我来说,问题是 Searchkick 中包含的表之一没有记录。确保每个表中至少有一条记录,然后rake db:reindex:all再试一次。
回答by kielni
You're getting an error because Elasticsearch doesn't know what a field query is: No query registered for [field]]
您收到错误消息,因为 Elasticsearch 不知道字段查询是什么: No query registered for [field]]
If you're trying to find documents where the title field contains ca, you could do this:
如果您要查找 title 字段包含 ca 的文档,您可以这样做:
{
"query": {
"query_string": {
"query": "title:ca"
}
}
}

