【发布时间】:2015-10-07 11:03:48
【问题描述】:
我刚开始使用 Elasticsearch,想对映射为 date 的字段使用基于脚本的排序,格式为 hour_minute。每个文档中可以有多个字段实例。
在引入表达式之前,作为第一步,我尝试了一个简单的排序(使用 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"
}
}
}
最终我想使用基于脚本的排序,因为我将尝试使用日期和时间条件进行查询、过滤或排序,例如查询具有今天日期的文档,然后按日期之后的最低时间对它们进行排序现在时间等。
任何建议将不胜感激。
【问题讨论】:
标签: sorting date datetime elasticsearch