白话Elasticsearch22- 深度探秘搜索技术之match_phrase_prefix实现search-time搜索推荐
文章目录
- 概述
- match_phrase_prefix
- 官方说明
- 例子
- 总结
概述
继续跟中华石杉老师学习ES,第22篇
课程地址: https://www.roncoo.com/view/55
match_phrase_prefix
官方说明
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html
搜索推荐,search as you type,搜索提示,解释一下什么意思
假设有这么几个doc 如下
hello world
hello we
hello win
hello wind
hello dog
hello cat
搜索 hello w
hello world
hello we
hello win
hello wind
会给出提示 如何上 ,搜索推荐的功能
这种效果
例子
造点数据
PUT /my_index1/my_type1/1
{"content":"hello Jack"
}PUT /my_index1/my_type1/2
{"content":"hello John"
}PUT /my_index1/my_type1/3
{"content":"hello Jose"
}PUT /my_index1/my_type1/4
{"content":"hello Dave"
}
查询
GET /my_index1/my_type1/_search
{"query": {"match_phrase_prefix": {"content": "hello J"}}
}
返回
{"took": 38,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 3,"max_score": 1.7509375,"hits": [{"_index": "my_index1","_type": "my_type1","_id": "2","_score": 1.7509375,"_source": {"content": "hello John"}},{"_index": "my_index1","_type": "my_type1","_id": "1","_score": 1.1507283,"_source": {"content": "hello Jack"}},{"_index": "my_index1","_type": "my_type1","_id": "3","_score": 1.1507283,"_source": {"content": "hello Jose"}}]}
}
总结
match_phrase_prefix原理跟match_phrase类似,唯一的区别,就是把最后一个term作为前缀去搜索
- hello就是去进行match,搜索对应的doc
- w,会作为前缀,去扫描整个倒排索引,找到所有w开头的doc
- 然后找到所有doc中,即包含hello,又包含w开头的字符的doc
- 根据你的slop去计算,看在slop范围内,能不能让hello w,正好跟doc中的hello和w开头的单词的position相匹配
- 也可以指定slop,但是只有最后一个term会作为前缀
- max_expansions:指定prefix最多匹配多少个term,超过这个数量就不继续匹配了,限定性能
- 默认情况下,前缀要扫描所有的倒排索引中的term,去查找w打头的单词,但是这样性能太差。可以用max_expansions限定,w前缀最多匹配多少个term,就不再继续搜索倒排索引了。
尽量不要用,因为,最后一个前缀始终要去扫描大量的索引,性能可能会很差
白话Elasticsearch22- 深度探秘搜索技术之match_phrase_prefix实现search-time搜索推荐相关推荐
- 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索
文章目录 概述 官网 近似匹配 例子 match query match phrase query term position match_phrase的基本原理 概述 继续跟中华石杉老师学习ES,第 ...
- 白话Elasticsearch08-深度探秘搜索技术之基于boost的细粒度搜索条件权重控制
文章目录 概述 boost 示例 概述 继续跟中华石杉老师学习ES,第八篇 课程地址: https://www.roncoo.com/view/55 boost https://www.elastic ...
- 专访头条搜索:从推荐到搜索,如何构建搜索技术的另一种可能?
今日头条又将搜索业务往前推进了一步.4 月 30 日,今日头条宣布上线"头条百科"测试版.界面简洁,除了搜索框外,只有一个 Slogan:" 来这里,认识世界!" ...
- 论搜索技术对人类的四大社会性意义
论搜索技术对人类的四大社会性意义 搜索引擎技术和资本门槛本身并不高,但随着人性因素的彰显而进入深度竞争阶段的互联网时代来临之后,搜索之争趋于深度竞争,深刻理解搜索对于人类的社会性意义成为竞争战略和策略 ...
- 复杂的1秒--图解Google搜索技术
http://www.cnblogs.com/printN/p/6414854.html 谷歌(Google),一个非常成功,但又十分神秘,而且带有几分理想化色彩的互联网搜索巨人,它还是一家相当了不起 ...
- 复杂的1秒 图解Google搜索技术
谷歌自家设计服务器 谷歌的数据中心高度机密,我们所能得到的信息十分有限.我们先来看几个数据:谷歌在美国本土的数据中心有19个以上,另有17个分布在美国以外的世界各地;每个数据中心有50万平方英尺(46 ...
- 搜索技术之我不懂的东西?
前几天上着班呢,一个过去的同事给我打电话过来,接起电话,就听那边机关枪似得一顿扫射,谈话内容是这样子的. 那个谁,我这里现在有个问题要请教下你,这边有个站,客户要加个需求,就是需要一个搜索的功能,大概 ...
- 白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端
文章目录 概述 例子 概述 继续跟中华石杉老师学习ES,第15篇 课程地址: https://www.roncoo.com/view/55 白话Elasticsearch14-基于multi_matc ...
- 白话Elasticsearch27-深度探秘搜索技术之误拼写时的fuzzy模糊搜索技术
文章目录 概述 官方指导 例子 推荐写法 概述 继续跟中华石杉老师学习ES,第27篇 课程地址: https://www.roncoo.com/view/55 官方指导 https://www.ela ...
最新文章
- OpenCV中imread/imwrite与imdecode/imencode的异同
- 利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
- linux class device
- 异步执行和多线程编程的关系
- 笔记 — 动画效果(Css3)
- 数字孪生营销_如何通过数字营销增加您的自由职业收入
- 怎么在eclipse中安装properties插件使其显示中文
- cisco 模拟器安装及交换机的基本配置实验心得_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...
- 如何部署Java_web项目到云服务器上
- php毕设周记_(完整版)毕设周记
- 输入输出工具技术(ITTO)要背吗?——软考高项笔记8
- Mac上的网络视频会议软件
- RE写作Issue问题题库分析与提纲
- 润乾统计图超链接使用例子
- multiset用法详解
- 运用python简单的画圆
- python的循环语句有哪些_python的循环语句
- Vue 表情输入组件,微信face表情组件
- GC详解---JVM(三)
- 关于串联匹配电阻其作用
热门文章
- pyspark rdd 基本操作
- 神经网络贷款风险评估(base on keras and python )
- thinkpad风扇声音大_笔记本风扇声音很大怎么解决
- 628. Maximum Product of Three Numbers
- 文巾解题 26. 删除有序数组中的重复项
- 编程语言中的Lambda 函数是如何产生的 它究竟有什么用
- LeetCode面试刷题技巧-二分查找算法(下):通过 LeetCode 学习二分查找算法-销售价值减少的颜色球
- tableau实战系列(三十四)-教你如何在tableau中实现3D效果作图
- python 查看当前系统Python版本
- 机器学习之手把手实现,第 2 部分 频繁项集与关联规则 FP-growth 的原理和实现...