2016-11-11 42 views
0

我有一个非常简单的弹性搜索查询,其中我按类别过滤了一些项目。这是一个持续的分数查询,像这样:Elasticsearch常数分数排序

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

的问题是,没有得分排序结果,这些由他们并不总是回来相同的顺序。这是一个问题,因为它弄乱了我的分页。

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

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

任何想法?谢谢!

回答

0

试试这个:

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

由于这是过去被称为不计算分数过滤查询和得分字段将有0