23.match_phrase_prefix实现search-time搜索推荐
2024-09-01 17:36:47
主要知识点:
- 搜索推荐的使用场景
- 用法
- 原理
一、搜索推荐的使用场景
搜索推荐,就是在你做搜索时,当你写出一部搜索词时,es会自提示接下来要写的词,比如当你在搜索hello w 时,如果es中有如下文档,则es会自动提示hello word、hello we、hello wind。类似我们在用百度时的自动搜索提示。
hello world
hello we
hello win
hello wind
hello dog
hello cat
hello w -->
hello world
hello we
hello win
hello wind
二、语法
GET /my_index/my_type/_search
{
"query": {
"match_phrase_prefix": {
"title": "hello d"
}
}
}
三、原理
原理跟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就不再继续搜索倒排索引了。
最后说明,这种方式性能很差,一般情况下,不要用这种方式。
最新文章
- HTTP协议请求响应过程和HTTPS工作原理
- [原创]Mac系统下制作OS 10.11安装镜像
- wow 各职业体验(pvp)
- C#高级编程 反射 代码示例
- 虚拟局域网VLAN
- Pass value from child popup window to parent page window using JavaScript--reference
- SGU 112.a^b - b^a
- python的小基础
- jmeter中的参数化
- python setuptools
- 23个Python爬虫开源项目代码,让你一次学个够
- Iterator迭代器UML类图
- ecs主机被破解后下载的执行文件的脚本
- Canvas画空心正五角星-扩展DEMO为五星红旗
- 1-Android开发验证码(使用第三方Mob,注册)
- Sitecore xDB基础知识 - 识别用户,联系人,访客,客户
- C#如何调用R
- Unity下Iso和Persp两种模式的区别
- 【cs231n】图像分类-Nearest Neighbor Classifier(最近邻分类器)【python3实现】
- 封装一个统一返回json结果类JsonResult
热门文章
- “2014年ArcGIS影像高级培训班——5月份北京站”火热报名中!
- 在Sql Server触发器中判断操作是Insert还是Update还是Delete
- C++11 function使用
- java replaceAll 忽略大小写
- 【XSY3209】RGB Sequence
- [App Store Connect帮助]三、管理 App 和版本(2.3)输入 App 信息:提供自定许可协议
- C语言过时了?为什么还要推荐每一位程序员都来学一下C语言?
- IE版本的判断
- 336 Palindrome Pairs 回文对
- go语言Notepad++简易开发环境搭建(windows)