对单个字段使用more_like_this

时间:2019-05-14 10:24:57

标签: python elasticsearch morelikethis

我有一个Elasticsearch查询,它根据我包括的所有字段为我提供了文档的分数。我需要对其进行修改,以便我可以获取每个字段的分数,而无需将它们混合在一起,因此我可以获取每个字段的分数并进行比较,以进行更有意义的比较。我想我必须做一些嵌套的more_like_this,但是我真的不知道怎么做。另外,我只得到10个结果,我将需要更多结果。我尝试使用尺寸,但无法正常工作。谢谢您的帮助。

def search_similar (self, id_caso):
    return self._es_buscar({ "size": 100, "query": { "more_like_this": {
        "like": [ { "_id": id_caso} ],
        "fields": self.conf.get('campos'),
        "max_query_terms": 100,
        "min_term_freq": 0,
        "minimum_should_match": 0
} } })

def _es_buscar (self, query):
    res = self._es.search(index="historiales",
                          doc_type="historial",
                          body=query)
    return [{ 'id': r['_id'], 'doc': r['_source'], 'score' : r['_score']}
            for r in res['hits']['hits']]

0 个答案:

没有答案