一尘不染

如何在ElasticSearch中按_version排序数据

elasticsearch

因为我能够使用像

    {
  "version":true,
  "_source":false,
  "sort": [
    {
      "_score": {
        "order": "desc"
      }
    }
  ], 
  "query": {
    "match_all": {}

  }
}

请让我知道如何使用_version做同样的事情。默认情况下,字段_version不支持Fielddata。所以可能是我缺少了一些东西。是否有要查询版本的特定设置?请帮忙!


阅读 830

收藏
2020-06-22

共1个答案

一尘不染

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

尽管在某些情况下使用_version似乎可行,但我建议不要将其用于乐观锁定更新之外。特别地,版本没有任何意义:它们看起来像文档被修改的次数,但并非总是如此(例如,如果您创建的ID与您刚使用的文档相同的ID的新文档删除后,新文档的版本号将不会是1),更重要的是它是实现细节,此行为将来可能会更改。

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

2020-06-22