我剛剛開始使用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