Elasticsearch常数得分排序

时间:2016-11-11 10:20:24

标签: database elasticsearch

我有一个非常简单的弹性搜索查询,我按类别过滤一些项目。这是一个常数分数查询,如下所示:

"query": {
    "constant_score": {
        "filter": {
            "term": {
                "category": "[category-id]"
            }
        }
    }
}

问题在于没有得分来对这些结果进行排序,因为它们并不总是以相同的顺序返回。这是一个问题,因为它弄乱了我的分页。

一个例子。我要求前5项,我收到回来让我们说下面的ID:[4, 7, 8, 10, 3]。然后我希望接下来的5个项目显示下一页,但我可能会重复一些项目,例如:[12, 15, 7, 13, 9]

问题是我的所有字段都是字符串字段,我不希望按任何字段排序。排序顺序并不重要,每次都保持相同的顺序非常重要。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

GET _search
{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "category": "[category-id]"
        }
      }
    }
  }
}

由于此过去曾被称为过滤查询,因此不计算分数,分数字段的值为0.