文章目录

  • 概述
  • 普通match转换为term+should
  • and match转换为term+must
  • minimum_should_match如何转换

概述

继续跟中华石杉老师学习ES,第七篇

课程地址: https://www.roncoo.com/view/55


普通match转换为term+should

上一篇博文中我们 使用了 搜索标题中包含java或elasticsearch的blog 这个例子

GET /forum/article/_search
{"query": {"match": {"title": "java elasticsearch"}}
}

我们通过分词器查看,可以知道 es是把 java和elasticsearch放到了倒排索引中,

那es是如何查询的呢? 我们通过 profile

GET /forum/article/_search
{"profile": "true", "query": {"match": {"title": "java elasticsearch"}}
}

或者kibana提供的

使用诸如上面的match query进行多值搜索的时候,es会在底层自动将这个match query转换为bool的语法 . bool should,指定多个搜索词,同时使用term query

等同于

GET /forum/_search
{"query": {"bool": {"should": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}}]}}
}

and match转换为term+must

搜索标题中包含java和elasticsearch的blog 中的

GET /forum/_search
{"query": {"match": {"title": {"query": "java elasticsearch","operator": "and"}}}
}

and match转换为term+must

等同于

GET /forum/_search
{"query": {"bool": {"must": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}}]}}
}

minimum_should_match如何转换

搜索包含java,elasticsearch,spark,hadoop,4个关键字中,至少3个的blog


GET /forum/_search
{"query": {"match": {"title": {"query": "java elasticsearch hadoop spark","minimum_should_match": 3}}}
}

等同于

GET /forum/_search
{"query": {"bool": {"should": [{"term": {"title": "java"}},{"term": {"title": "elasticsearch"}},{"term": {"title": "hadoop"}},{"term": {"title": "spark"}}],"minimum_should_match": 3}}
}

白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析相关推荐

  1. 机器学习之网格搜索技术,如何在Auto-sklearn中应用网格搜索技术

    文章目录 一,机器学习中的网格搜索技术是怎么回事 二,通俗解释 三,在一般情况下使用网格搜索技术 四,GridSearchCV网格搜索技术的原理 五,如何在Auto-sklearn中使用网格搜索技术 ...

  2. 白话Elasticsearch18-深度探秘搜索技术之基于slop参数实现近似匹配以及原理剖析

    文章目录 概述 官网 slop 含义 例子 示例一 示例二 示例三 概述 继续跟中华石杉老师学习ES,第18篇 课程地址: https://www.roncoo.com/view/55 接上篇博客 白 ...

  3. 白话Elasticsearch13-深度探秘搜索技术之基于multi_match+most fields策略进行multi-field搜索

    文章目录 概述 官网 示例 构造模拟数据 普通查询 使用 multi_match + most fileds查询 best fields VS most fields 概述 继续跟中华石杉老师学习ES ...

  4. 白话Elasticsearch10-深度探秘搜索技术之基于dis_max实现best fields策略进行多字段搜索

    文章目录 概述 TF/IDF 链接 示例 DSL 普通查询 dis_max 查询 best fields策略-dis_max 概述 继续跟中华石杉老师学习ES,第十篇 课程地址: https://ww ...

  5. 白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端

    文章目录 概述 官网 示例 概述 继续跟中华石杉老师学习ES,第十四篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.co/g ...

  6. 白话Elasticsearch12-深度探秘搜索技术之基于multi_match + best fields语法实现dis_max+tie_breaker

    文章目录 概述 官网 示例 概述 继续跟中华石杉老师学习ES,第十二篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.co/g ...

  7. 白话Elasticsearch08-深度探秘搜索技术之基于boost的细粒度搜索条件权重控制

    文章目录 概述 boost 示例 概述 继续跟中华石杉老师学习ES,第八篇 课程地址: https://www.roncoo.com/view/55 boost https://www.elastic ...

  8. 白话Elasticsearch11-深度探秘搜索技术之基于tie_breaker参数优化dis_max搜索效果

    文章目录 概述 官方文档 例子 tie_breaker 概述 继续跟中华石杉老师学习ES,第十一篇 课程地址: https://www.roncoo.com/view/55 官方文档 https:// ...

  9. 白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐

    文章目录 概述 官网 什么是ngram 什么是edge ngram ngram和index-time搜索推荐原理 例子 概述 继续跟中华石杉老师学习ES,第23篇 课程地址: https://www. ...

最新文章

  1. BUUCTF(pwn) ciscn_2019_s_3 [ 栈溢出SROP攻击]
  2. php+mkdate,PHP时间工具种
  3. getParentalNodePaths、osg::NodePathList、osg::NodePath详解
  4. 最近总是淡淡的····
  5. ASP.NET实现数据采集
  6. 从文本中提取单词生成单词本
  7. docker部署redis的单机/主从/哨兵/集群方法
  8. 标签传播算法(半监督图算法)
  9. 小沈阳最经典的99句台词 保证你从头笑到尾
  10. Kotlin泛型上界与扩展函数
  11. 手机APP渠道推广怎么玩?
  12. 傻妞sillyGirl对接VLW微信机器人
  13. 【 C++ 】AVL树
  14. SSL安全连接是什么意思?HTTPS安全登录指的什么?
  15. N次笑N次据说可以让人年轻10岁的故事
  16. element-ui中el-container容器与div布局区分
  17. Latex报错(TexWork):Misplaced alignment tab character . l.13 Journal of Hygiene
  18. 万物互联来袭 你准备好迎接5G新时代了吗?
  19. PCB电路板为什么大多是绿色的?
  20. android城市万花筒,诺基亚720评测

热门文章

  1. j2ee html5,HTML5+J2EE实现文件异步上传
  2. pycharm 中写代码的提示的前符号 p,m ,c,v, f 是什么意思
  3. 如何判断强化学习训练是否在收敛?
  4. orb_slam 编译错误
  5. C语言交换两个数的值与形参与实参理解
  6. mongo查看数据库空间大小
  7. 计算机操作系统32跟64区别是什么,32位和64位计算机操作系统之间的区别32位和64位win7系统之间的区别...
  8. 寻找搜索二叉树中两个错误的节点
  9. tableau实战系列(三十五)-教你画个不一样的圆角条形图
  10. 台式电脑可以连wifi吗_[Windows] wifi音箱:台式电脑也可以连接蓝牙音箱了