我需要知道要编写这样的请求-按字段值对记录进行排序。怎么做?
我有这个查询:
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": {
"match": {
"agency" 1064
}
},
"must_not": {
"match": {
"status": "archive"
}
}
}
},
"sort": {
"_script": {
"type": "number",
"script": {
"lang": "painless",
"source": "doc['status'].value == 'created'"
},
"order": "desc",
}
},
"track_total_hits": true
}
我收到一条消息错误:'search_phase_execution_exception'
ScriptStack中的对象错误: 0:'doc [\'status \']。value == \'c ...' 1:'^ ----这里'
还从docker-compose记录日志:
关键所在-elasticsearch | “原因:java.lang.ClassCastException:无法从[boolean]转换为[double]。”,
elasticsearch | “ stacktrace”:[“ org.elasticsearch.script.ScriptException:编译错误”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine.convertToScriptException(PainlessScriptEngine.java:442)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine.compile(PainlessScriptEngine.java:362)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine.compile(PainlessScriptEngine.java:139)〜[?:?]”, elasticsearch | “在org.elasticsearch.script.ScriptService.compile(ScriptService.java:356)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.sort.ScriptSortBuilder.build(ScriptSortBuilder.java:365)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:153)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService.parseSource(SearchService.java:760)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService.createContext(SearchService.java:591)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:550)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:353)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService.lambda $ executeQueryPhase $ 1(SearchService.java:340)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.action.ActionListener.lambda $ map $ 2(ActionListener.java:145)〜[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.action.ActionListener $ 1.onResponse(ActionListener.java:62)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.search.SearchService $ 2.doRun(SearchService.java:1052)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:44)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.common.util.concurrent.ThreadContext $ ContextPreservingAbstractRunnable.doRun(ThreadContext.java:758)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)[elasticsearch-7.2.0.jar:7.2.0]”, elasticsearch | “在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)[?:?]”, elasticsearch | “在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:628)[?:?]”, elasticsearch | “在java.lang.Thread.run(Thread.java:835)[?:?]”, elasticsearch | “由于:java.lang.ClassCastException:无法从[boolean]转换为[double]。”, elasticsearch | “在org.elasticsearch.painless.PainlessScript $ Script.compile(doc ['status']。value =='created':1)〜[?:?]“, elasticsearch | “在org.elasticsearch.painless.AnalyzerCaster.getLegalCast(AnalyzerCaster.java:402)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.node.AExpression.cast(AExpression.java:121)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.node.SExpression.analyze(SExpression.java:64)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.node.SSource.analyze(SSource.java:222)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.node.SSource.analyze(SSource.java:182)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.Compiler.compile(Compiler.java:213)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine $ 2.run(PainlessScriptEngine.java:355)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine $ 2.run(PainlessScriptEngine.java:351)〜[?:?]”, elasticsearch | “在java.security.AccessController.doPrivileged(AccessController.java:389)〜[?:?]”, elasticsearch | “在org.elasticsearch.painless.PainlessScriptEngine.compile(PainlessScriptEngine.java:351)〜[?:?]”, elasticsearch | “ ...还有19个”]}