Elasticsearch - 使用字段匹配仅提升而不是获取文档

比卡斯·卡特瓦尔

我有一个查询语句,需要能匹配的领域- namesummarydescription上或完全匹配name字段。

现在,我又多了一个新领域brand此字段中的匹配应仅用于提高结果。这意味着如果仅在该brand字段中有匹配项,则该文档不应出现在结果集中。

为了解决没有brand我有以下查询:

query: {
   bool: {
      minimum_should_match: 1,
      should: [
         multi_match:{
             query : "Cadbury chocklate milk",
             fields : [name, summary, description]
         },
         term: {
             name_keyword: {
                value: "Cadbury chocklate milk"
             }
         }
      ]
   }
}

这对我来说很好用。

我如何使用相同的查询获取数据,但提升具有 的文档brand:cadbury,而不增加召回集(匹配基于brand:cadbury)。

谢谢!

图沙尔沙希

使用bool内部必须should为您工作。

multi_match有多种类型,对于短语,您必须使用type:phrase.

{
  "query": {
   "bool": {
      "must": [
         { "bool" : 
      { "should" : [ {
         "multi_match" :{
            "type" : "phrase",
             "query" : "Cadbury chocklate milk",
             "fields" : ["name", "summary", "description"]
         }  }, {
         "term": {
             "name_keyword": {
                "value": "Cadbury chocklate milk"
             }  }
         }
      ]
      }   
    } 
  ],
   "should" :  {
     "term" : {
          "brand" :  { 
        "value" :  "cadbury"
       }
    }
  }

}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ElasticSearch匹配多个文档

Elasticsearch:使用映射提升特定值的字段

Elasticsearch:仅匹配无日期字段

ElasticSearch匹配整个文档

ElasticSearch - 如何获取文档的所有字段?

Elasticsearch从子文档获取_parent源字段

Elasticsearch对字段的匹配列表

Elasticsearch 使用匹配的 id 更新文档

仅获取按某个字段汇总/分组的最新Elasticsearch文档的总和

ElasticSearch:匹配数组字段中子文档的缺失字段

ElasticSearch:如何使用ElasticSearch API仅返回特定字段?

Elasticsearch获取嵌套字段

仅使用Elasticsearch选择特定字段

Elasticsearch - 在每次搜索中提升特定文档

Elasticsearch:匹配文档中的数组

Elasticsearch:仅检索字段不存在的文档_id

Elasticsearch:_id基于文档字段?

从Elasticsearch文档中删除字段

将 elasticsearch 中的文档与不同字段上的 AND 和 OR 匹配

如果文档的字段映射不匹配,Elasticsearch会静默失败

对ElasticSearch中的不同字段使用不同的查询来匹配和突出显示文档

使用Kafka Connect更新现有文档上的Elasticsearch字段,而不是创建新的

Elasticsearch 5:提升 1 个字段

Elasticsearch字段提升未在映射中显示

如何根据ElasticSearch中的条件提升字段

ElasticSearch:使用字段折叠时是否可以返回所有没有折叠键值的文档?

使elasticsearch仅返回某些字段?

在Elasticsearch中使用字段中的url搜索查询

Elasticsearch:仅返回基于名称字段的DISTINCT匹配