【问题标题】:How to sort data by _version in ElasticSearch如何在 ElasticSearch 中按 _version 对数据进行排序
【发布时间】:2018-05-27 03:45:40
【问题描述】:

因为我能够使用像

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

  }
}

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

【问题讨论】:

  • 基本上你不能这样做。用例是什么?
  • 我有一些文档的版本超过 1。我只想知道有多少文档的版本超过 1,可能在排序列表中

标签: elasticsearch elasticsearch-5 elasticsearch-query


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    相关资源
    最近更新 更多