相关疑难解决方法(0)

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

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

我有一个查询,要查找与特定字段(即标题、品牌、类别名称)上的搜索文档相似的文档。

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
    }
}
})
Run Code Online (Sandbox Code Playgroud)

我的印象是,它将搜索文档的标题字段与其他文档标题字段、品牌与品牌、类别名称与类别相匹配。然而,结果似乎表明并非如此。相反,它似乎结合了搜索文档标题、品牌和类别字段中的文本,然后从中进行搜索。

有没有办法限制像这样的查询来匹配字段与字段,而不是组合字段并匹配所有字段?

对 more like this 行为的更多理解来自:Elasticsearch "More Like This" API vs. more_like_this query

更像这个 api 更进一步,允许提供文档的 id 以及字段列表。这些字段的内容将从该特定文档中提取,并用于对相同字段进行更像此的查询。这意味着生成的更像此查询的属性文本将包含先前提取的文本,并将在相同的字段上执行。正如您所看到的,more like this api 在后台执行更像此查询。

python elasticsearch

6
推荐指数
0
解决办法
1186
查看次数

标签 统计

elasticsearch ×1

python ×1