我有一个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']]