对于具有相同分数的文档,跨主/副本的结果排序不一致

时间:2014-04-04 15:56:36

标签: elasticsearch

我创建了一个带有单个分片和1个副本的索引。我正在运行ElasticSearch版本1.0.1,群集有3个节点。

我注意到,对于具有相同分数的文档,偶尔会对结果进行排序 根据是否针对主要副本和副本运行相同的查询而有所不同。 该查询是匹配查询。

例如,当针对主要运行时,结果为:

{
       "took": 2,
       "timed_out": false,
       "_shards": {
          "total": 1,
          "successful": 1,
          "failed": 0
       },
       "hits": {
          "total": 2,
          "max_score": 9.058382,
          "hits": [
             {
                "_index": "testdocs",
                "_type": "testdocs",
                "_id": "132898",
                "_score": 9.058382
             },
             {
                "_index": "testdocs",
                "_type": "testdocs",
                "_id": "132888",
                "_score": 9.058382
             }
          ]
       }
    }

对副本运行时:

{
   "took": 1,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "failed": 0
   },
   "hits": {
      "total": 2,
      "max_score": 9.058382,
      "hits": [
         {
            "_index": "testdocs",
            "_type": "testdocs",
            "_id": "132888",
            "_score": 9.058382
         },
         {
            "_index": "testdocs",
            "_type": "testdocs",
            "_id": "132898",
            "_score": 9.058382
         }
      ]
   }
}

不是上面结果顺序中“_id”的变化。

我无法用一部分文件复制它。我相信当副本中的段数与主要段中的段数不同时,似乎会发生这种情况。 在上面的案例中,副本在主要版本中有21对28。但是两者都有相同数量的文档,因此数据是一致的。

我的问题是,这是预期的行为,即具有相同分数ES的文档不提供默认排序示例:按_id排序? 唯一的方法是通过_score和_id对结果进行显式排序,或者是否有其他一些我缺失的设置。

0 个答案:

没有答案