白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析
文章目录
- 概述
- 普通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搜索底层剖析相关推荐
- 机器学习之网格搜索技术,如何在Auto-sklearn中应用网格搜索技术
文章目录 一,机器学习中的网格搜索技术是怎么回事 二,通俗解释 三,在一般情况下使用网格搜索技术 四,GridSearchCV网格搜索技术的原理 五,如何在Auto-sklearn中使用网格搜索技术 ...
- 白话Elasticsearch18-深度探秘搜索技术之基于slop参数实现近似匹配以及原理剖析
文章目录 概述 官网 slop 含义 例子 示例一 示例二 示例三 概述 继续跟中华石杉老师学习ES,第18篇 课程地址: https://www.roncoo.com/view/55 接上篇博客 白 ...
- 白话Elasticsearch13-深度探秘搜索技术之基于multi_match+most fields策略进行multi-field搜索
文章目录 概述 官网 示例 构造模拟数据 普通查询 使用 multi_match + most fileds查询 best fields VS most fields 概述 继续跟中华石杉老师学习ES ...
- 白话Elasticsearch10-深度探秘搜索技术之基于dis_max实现best fields策略进行多字段搜索
文章目录 概述 TF/IDF 链接 示例 DSL 普通查询 dis_max 查询 best fields策略-dis_max 概述 继续跟中华石杉老师学习ES,第十篇 课程地址: https://ww ...
- 白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
文章目录 概述 官网 示例 概述 继续跟中华石杉老师学习ES,第十四篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.co/g ...
- 白话Elasticsearch12-深度探秘搜索技术之基于multi_match + best fields语法实现dis_max+tie_breaker
文章目录 概述 官网 示例 概述 继续跟中华石杉老师学习ES,第十二篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.co/g ...
- 白话Elasticsearch08-深度探秘搜索技术之基于boost的细粒度搜索条件权重控制
文章目录 概述 boost 示例 概述 继续跟中华石杉老师学习ES,第八篇 课程地址: https://www.roncoo.com/view/55 boost https://www.elastic ...
- 白话Elasticsearch11-深度探秘搜索技术之基于tie_breaker参数优化dis_max搜索效果
文章目录 概述 官方文档 例子 tie_breaker 概述 继续跟中华石杉老师学习ES,第十一篇 课程地址: https://www.roncoo.com/view/55 官方文档 https:// ...
- 白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐
文章目录 概述 官网 什么是ngram 什么是edge ngram ngram和index-time搜索推荐原理 例子 概述 继续跟中华石杉老师学习ES,第23篇 课程地址: https://www. ...
最新文章
- BUUCTF(pwn) ciscn_2019_s_3 [ 栈溢出SROP攻击]
- php+mkdate,PHP时间工具种
- getParentalNodePaths、osg::NodePathList、osg::NodePath详解
- 最近总是淡淡的····
- ASP.NET实现数据采集
- 从文本中提取单词生成单词本
- docker部署redis的单机/主从/哨兵/集群方法
- 标签传播算法(半监督图算法)
- 小沈阳最经典的99句台词 保证你从头笑到尾
- Kotlin泛型上界与扩展函数
- 手机APP渠道推广怎么玩?
- 傻妞sillyGirl对接VLW微信机器人
- 【 C++ 】AVL树
- SSL安全连接是什么意思?HTTPS安全登录指的什么?
- N次笑N次据说可以让人年轻10岁的故事
- element-ui中el-container容器与div布局区分
- Latex报错(TexWork):Misplaced alignment tab character . l.13 Journal of Hygiene
- 万物互联来袭 你准备好迎接5G新时代了吗?
- PCB电路板为什么大多是绿色的?
- android城市万花筒,诺基亚720评测
热门文章
- j2ee html5,HTML5+J2EE实现文件异步上传
- pycharm 中写代码的提示的前符号 p,m ,c,v, f 是什么意思
- 如何判断强化学习训练是否在收敛?
- orb_slam 编译错误
- C语言交换两个数的值与形参与实参理解
- mongo查看数据库空间大小
- 计算机操作系统32跟64区别是什么,32位和64位计算机操作系统之间的区别32位和64位win7系统之间的区别...
- 寻找搜索二叉树中两个错误的节点
- tableau实战系列(三十五)-教你画个不一样的圆角条形图
- 台式电脑可以连wifi吗_[Windows] wifi音箱:台式电脑也可以连接蓝牙音箱了