三人行必有我师

elasticsearch 对同一索引进行检索 多次刷新会出现同一条件不同结果

匿名 | 发布于2016年06月06日 | 阅读数:4789

目前, 使用的英文, 大致的query类似于: 
{"query":{"function_score":{"query":{"multi_match":{"query":"keyword","type":"best_fields","fields":["column1","
column2","
column3"]}},"functions":[{"weight":2,"filter":{"term":{"state":1}}}]}},"from":0,"size":10}
但是, 返回的结果, 这是一次请求, 
Array
(
[0] => 121092020
[1] => 121140853
[2] => 121140369
[3] => 121067837
[4] => 121067832
[5] => 121119295
[6] => 121119309
[7] => 121119316
[8] => 121119335
[9] => 121067870
)
Array
(
    [0] => 121092020
    [1] => 121140853
    [2] => 121140369
    [3] => 121067837
    [4] => 121067832
    [5] => 121067870
    [6] => 121119295
    [7] => 121119309
    [8] => 121119316
    [9] => 121119335
)

这是又一次请求, 各位, Help me
已邀请:

strglee

赞同来自:

这个可能是结果震荡,document可能在原始分片里是一种顺序,在副本分片里是另一种顺序。所以会导致顺序不一样。结果震荡

nodexy - Another developer !

赞同来自:

这个是采用了自定义的score,如果score相同的时候,是没有其他排序依据的,所以会每次出现不同;  你可以仔细分析下,是不是顺序不同的doc,score刚好是相同的?   如果是这样,你可以给排序在score后面再加一个其他维度,比如业务的或者id的都可以。

要回复问题请先登录注册