Elasticsearch:重复字段的得分高于精确字段

问题描述 投票:0回答:1

我有一个 Elasticsearch 数据库,其中所有文档都有一个名称字段,并通过该字段进行查询。

默认情况下,Elasticsearch 搜索会对名称重复的文档给予更高的分数。但是,就我而言,我试图获得高分。

例如,当我搜索“铅笔”时,结果是这样的:

  1. 名称:“铅笔”
  2. 名称:“铅笔”

所以2.分数低于1。

我尝试过查询

{
    "query": {
        "bool": {
            "should": [
                {
                    "bool": {
                        "should": {
                            "query_string": {
                                "query": "+red ",
                                "default_field": "type"
                            }
                        }
                    }
                }
            ],
            "must": [
                {
                    "bool": {
                        "should": [
                            {
                                "query_string": {
                                    "query": "+pencil ",
                                    "default_field": "name"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    }
}
elasticsearch
1个回答
0
投票

在名称字段的分析器中使用唯一标记过滤器其中

从流中删除重复的标记。例如,您可以使用独特的过滤器将懒惰的懒狗更改为懒惰的狗。

这假设字段映射为文本而不是术语。如果它是术语字段,则应使用术语查询

© www.soinside.com 2019 - 2024. All rights reserved.