Elasticsearch“more_like_this”特定于字段的查询

时间:2016-09-22 08:51:47

标签: python elasticsearch

Elasticsearch的“more_like_this”查询允许用户根据搜索文档ID查找类似的文档。

我有一个查询来查找与特定字段(即title,brand,category_name)上的搜索文档类似的文档。

es.search(index=INDEX_NAME, body = {'query': {
"more_like_this" : {
    "fields" : ['title', 'brand', 'category_name'],
    "like" : [
    {
        "_index" : INDEX_NAME,
        "_type" : TYPE_NAME,
        "_id" : "8117769"
    }
    ],
    "min_term_freq" : 2,
    "max_query_terms" : 25
    }
}
})

我的印象是,它会将搜索到的文档的标题字段与其他文档标题字段,品牌与品牌以及类别名称与类别相匹配。然而,结果似乎表明不然。相反,它似乎结合了搜索文档标题,品牌和类别字段中的文本,然后从中搜索。

有没有办法限制更像此查询以匹配字段与字段,而不是组合字段和匹配所有字段?

通过以下方式进一步了解此行为:Elasticsearch "More Like This" API vs. more_like_this query

  

更像这个api更进一步,允许提供文档的id,再次提供字段列表。这些字段的内容将从该特定文档中提取,并用于在相同字段上进行更类似的查询。这意味着生成的更像此查询将具有包含先前提取的文本的属性文本,并将在相同的字段上执行。正如你所看到的那样,api执行的更像是这个问题。

0 个答案:

没有答案