2019独角兽企业重金招聘Python工程师标准>>>

======================================【建议】:类型most_fields与多个match类似,但best_fields更适合变形的文本匹配。======================================

multi_match 查询为能在多个字段上反复执行相同查询提供了一种便捷方式。

multi_match 多匹配查询的类型有多种,其中的三种恰巧与 了解我们的数据 中介绍的三个场景对应,即: best_fields 、 most_fields 和 cross_fields (最佳字段、多数字段、跨字段)。

默认情况下,查询的类型是 best_fields , 这表示它会为每个字段生成一个 match 查询,然后将它们组合到 dis_max 查询的内部,如下:

{"dis_max": {"queries":  [{"match": {"title": {"query": "Quick brown fox","minimum_should_match": "30%"}}},{"match": {"body": {"query": "Quick brown fox","minimum_should_match": "30%"}}},],"tie_breaker": 0.3}
}

上面这个查询用 multi_match 重写成更简洁的形式:

{"multi_match": {"query":                "Quick brown fox","type":                 "best_fields", "fields":               [ "title", "body" ],"tie_breaker":          0.3,"minimum_should_match": "30%" }
}

拷贝为 CURL在 SENSE 中查看

best_fields 类型是默认值,可以不指定。

如 minimum_should_match 或 operator 这样的参数会被传递到生成的 match 查询中。

查询字段名称的模糊匹配编辑

字段名称可以用模糊匹配的方式给出:任何与模糊模式正则匹配的字段都会被包括在搜索条件中, 例如可以使用以下方式同时匹配 book_title 、 chapter_title 和 section_title (书名、章名、节名)这三个字段:

{"multi_match": {"query":  "Quick brown fox","fields": "*_title"}
}

提升单个字段的权重编辑

可以使用 ^ 字符语法为单个字段提升权重,在字段名称的末尾添加 ^boost , 其中 boost 是一个浮点数:

{"multi_match": {"query":  "Quick brown fox","fields": [ "*_title", "chapter_title^2" ] }
}

chapter_title 这个字段的 boost 值为 2 ,而其他两个字段 book_title 和 section_title 字段的默认 boost 值为 1 。

转载于:https://my.oschina.net/airship/blog/3014675

multi_match 查询【muti_match和match区别】相关推荐

  1. multi_match 查询

    文章目录 fields 和每个字段的增强 multi_match 查询的类型 best_fields most_fields phrase 和 phrase_prefix cross_fields c ...

  2. [Elasticsearch2.x] 多字段搜索 (三) - multi_match查询和多数字段 译

    multi_match查询 multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. NOTE 存在几种类型的multi_match查询,其中的3种正好和在"了解你的数据 ...

  3. 06.full_text multi_match查询

    文章目录 1. multi_match 简介 2. multi_match 查询类型 1. best_fields 2. most_fields 3. phrase和phrase_prefix 4. ...

  4. Elasticsearch多字段搜索 - multi_match查询和多数字段-----multi_match查询

    multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. best_fields,most_fields以及cross_fields. 默认情况下,该查询以best_fields类 ...

  5. Elasticsearch教程(28) text和keyword区别 term和match区别 ik中文分词器使用

    text和keyword区别 term和match区别 ik中文分词器使用 一.前言 二.之前相关的博客 三.造点测试数据 1. 创建一个index 2. 插入测试数据 四.做一份试卷 第1题:tit ...

  6. 【ES笔记02】ElasticSearch数据库之查询操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)

    这篇文章,主要介绍ElasticSearch数据库之查询操作(match.must.must_not.should._source.filter.range.exists.ids.term.terms ...

  7. 相关子查询和嵌套子查询两者之间的区别

    相关子查询和嵌套子查询两者之间的区别 表的结构如下: mysql> select * from product; +----+------+-------+-----+ | id | name ...

  8. Elasticsearch查询之term/match解析

    2019独角兽企业重金招聘Python工程师标准>>> es种有两种查询模式,一种是像传递URL参数一样去传递查询语句,被称为简单搜索或查询字符串(query string)搜索,比 ...

  9. 2批量批量查询数据插入数据_Excel如何快速对数据批量查询,vlookup+match函数高效完成工作...

    工作中当出现匹配多次数据时,此时我们就需要更改vlookup函数的第三参数,更改查询的列数.此时你是否在想我手动改就可以了.当然如果查询次数不多时,这也是一种方法.下面将用vlookup+match一 ...

最新文章

  1. java 不可修改的集合对象_java集合:关于hashmap存储一个对象,中间改变对象的值,为什么再remove不能用新名字来删除...
  2. iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)
  3. 微软的Ajax库客户端Bug总结
  4. 骁龙617 android7,骁龙617手机有哪些?骁龙617手机汇总
  5. 在WPF中,如何得到任何Object对象的XAML代码?
  6. “个人核心竞争力”与“危机感”
  7. php 不等于 的函数吗,PHP不常见的函数整理
  8. 搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法
  9. 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施.doc...
  10. 【DSP】win10安装CCS5.5教程及报错解决方法
  11. ubuntu 20 解决软件商店不可用问题
  12. 两个点 定位_智造讲堂:RFID定位导航技术
  13. JN5169 NXP ZigBee PRO 无线网络应用所需的常见操作(一)
  14. 网络环路导致公司网络瘫痪问题排查
  15. kubernetes部署分布式存储longhorn
  16. sql自定义报表软件_SQL Server中的报表–自定义报表的外观
  17. 中山西路620号 的人才服务中心搬到 梅园路77号去了
  18. 微信支付 django
  19. 报错:Unable to check if JNs are ready for formatting
  20. 数字逻辑---头歌实训作业---逻辑函数及其描述工具(Logisim)

热门文章

  1. 16个千兆光口8个千兆Combo光电复用口管理型工业以太网交换机环网+WEB管理+SNMP+VLAN
  2. VLAN 主干道配置
  3. windows10、windows11、windows-server官方下载安装
  4. 微信打开链接提示用浏览器打开
  5. mysql对结果再查询_SQL如何在查询结果里再次查询?
  6. 细思极恐!大数据和机器学习揭示十二星座的真实面目
  7. 【Django下载文件-Kml文件下载】
  8. Mac MySql官方下载速度太慢解决方案
  9. python:使用机器学习算法对卫星遥感影像进行分类
  10. 灵动微电子MM32L0系列芯片做呼吸灯功能