如何在ElasticSearch中按_version对数据进行排序

时间:2017-12-13 09:45:07

标签: elasticsearch elasticsearch-5 elasticsearch-query

因为我能够使用像

这样的分数对数据进行排序
    {
  "version":true,
  "_source":false,
  "sort": [
    {
      "_score": {
        "order": "desc"
      }
    }
  ], 
  "query": {
    "match_all": {}

  }
}

请告诉我如何才能对_version做同样的事情。默认情况下,字段_version不支持Fielddata。所以可能是我错过了一些东西。 是否有任何特定的设置来查询版本? 请帮忙!

1 个答案:

答案 0 :(得分:1)

你不能这样做,通常你不必这样做。 看到这个帖子: https://discuss.elastic.co/t/filter-by--version-and-show--version-in-elasticsearch-query/22024/2

  

虽然使用_version似乎在某些情况下可行,但我愿意   建议永远不要将它用于乐观锁定之外的任何其他事情   更新。特别是,版本没有任何意义:它们可能看起来   比如文档被修改的次数但并非总是如此   这种情况(例如,如果您创建一个具有相同ID的新文档   作为刚刚删除的文档,新文档的版本号   不会是1),更重要的是它是一个实现细节,这个   行为可能在未来发生变化。

_version字段未编入索引,因此您无法在查询中使用它 您可以创建自定义版本字段并手动处理。