1

msearch用来查询ES。以下是我的查询:-

[{
    'index': u 'INDEX',
    'type': u 'TYPE'
}, {
    'query': {
        'term': {
            'FIELD1': u 'ID'
        }
    },
    'from': 0,
    'size': 1
}, {
    'index': u 'INDEX',
    'type': u 'TYPE'
}, {
    'query': {
        'function_score': {
            'filter': {
                'term': {
                    'source': u 'SOURCE'
                }
            },
            'query': {
                'dis_max': {
                    'tie_breaker': 0,
                    'queries': [{
                        'match': {
                            u 'FIELD2.shingle': {
                                'cutoff_frequency': 0,
                                'query': u 'QUERY',
                                'boost': 1,
                                'analyzer': 'shingle_analyzer',
                                'fuzziness': 1
                            }
                        }
                    }]
                }
            }
        }
    },
    'min_score': 2,
    'from': 0,
    'size': 5 L
}]

ES_CLIENT.msearch(body=query)

现在有时会发生第一个和第二个查询结果之间的交集,这会导致重复的结果。在 ES中使用时如何获得独特的结果,msearch或者我必须在应用程序级别处理它?

4

0 回答 0