我刚刚开始使用Elasticsearch,并且希望在映射为date
,格式为hour_minute
的字段上使用基于脚本的排序。每个文档中可以有多个字段的实例。Elasticsearch日期字段上的基于脚本的排序
之前引入的表达,作为第一步,我想一个简单的排序(使用SENSE插件):
POST myIndex/_search
{
"query": {
"match_all": {}
},
"sort": {
"_script": {
"script": "doc[\"someTime\"].value",
"lang": "groovy",
"type": "date",
"order": "asc"
}
}
}
我得到这个错误(片段):
SearchPhaseExecutionException[Failed to execute phase [query], all shards failed;
shardFailures {[tjWL-zV5QXmGjNlXzLvrzw][myIndex][0]:
SearchParseException[[myIndex][0]:
query[ConstantScore(*:*)],from[-1],size[-1]: Parse Failure [Failed to parse source…
如果我发布上述查询"type": "number"
没有错误,虽然这当然不按日期排序。以下工作正常:
POST myIndex/_search
{
"query": {
"match_all": {}
},
"sort": {
"someTime": {
"order": "asc"
}
}
}
最后,我想使用基于脚本的排序,因为我将尝试查询,筛选或排序使用日期和时间条件,如查询与今天的日期的引用文件,然后排序他们通过那就是时间后,现在最低的时间等
任何建议,将不胜感激。
转换对我来说不起作用,也许是因为'someTime'的格式是'hour_minute'(例如“17:30”)......我会继续在这个方向上努力,谢谢。 – michaelbcn