elasticsearch - 如何使用Elastic Search按格式日期排序?

标签 elasticsearch

假设我有以下内容:

Name      Date
-----   -------------------
Alice   2013-02-10 15:17:00
Alice   2013-02-10 16:19:00
Alice   2013-02-10 17:21:00
Bob     2013-02-10 18:23:00
Alice   2013-02-10 19:25:00

这是我按日期排序,然后按名称排序时发生的情况。它首先考虑小时。我真正想要的是:
Name      Date
-----   -------------------
Alice   2013-02-10 15:17:00
Alice   2013-02-10 16:19:00
Alice   2013-02-10 17:21:00
Alice   2013-02-10 19:25:00
Bob     2013-02-10 18:23:00

因此,我想首先按%Y-%m-%d排序,然后按名称排序。

那可能吗?

谢谢

最佳答案

看来您可以为此使用_script排序:

"sort": {
"_script": {
  "script": "new java.text.SimpleDateFormat('yyyy-MM-dd').format(new Date(doc['date'].value))",
  "type": "string",
  "order": "desc"
},
"name": "asc"

请注意,这是一个安全缺陷。在http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html阅读更多

关于elasticsearch - 如何使用Elastic Search按格式日期排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25315472/

相关文章:

elasticsearch - 如何更改 Elasticsearch 网络主机

elasticsearch - Logstash:查询参数低于通过Elasticsearch插件的值

elasticsearch - Elasticsearch-按最小和最大函数四舍五入数字

elasticsearch - 在 Elastic Search 中按匹配文本对 match_phrase 搜索结果进行分组

elasticsearch 将字段类型映射更改为嵌套

Excel 到 ElasticSearch API 请求

mysql - 跟踪电子商务访客和销售

Elasticsearch 自定义日期时间格式,包括。序数词

ubuntu - 如何连接到安装在 Ubuntu 16 上的远程 ElasticSearch 服务器?

elasticsearch - 如何使用Java API重写ElasticSearch DSL查询