23.match_phrase_prefix实现search-time搜索推荐
主要知识点:
- 搜索推荐的使用场景
- 用法
- 原理
一、搜索推荐的使用场景
搜索推荐,就是在你做搜索时,当你写出一部搜索词时,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就不再继续搜索倒排索引了。
最后说明,这种方式性能很差,一般情况下,不要用这种方式。
23.match_phrase_prefix实现search-time搜索推荐的更多相关文章
- 原创:Solr Wiki 中关于Suggester(搜索推荐)的简单解读
Solr Wiki Suggester Suggester - a flexible "autocomplete" component.(搜索推荐) A common nee ...
- Elasticsearch实现搜索推荐词
本篇介绍的是基于Elasticsearch实现搜索推荐词,其中需要用到Elasticsearch的pinyin插件以及ik分词插件,代码的实现这里提供了java跟C#的版本方便大家参考. 1.实现的结 ...
- ABAP search help (搜索帮助) 几种种方法
ABAP search help (搜索帮助) 几种种方法 域范围 ABAP 的搜索帮助有很多种方法,掌握下面的几种基本差不多了 *&------------------------- ...
- 24.通过ngram分词机制实现index-time搜索推荐
一.ngram和index-time搜索推荐原理 1.什么是ngram 假设有一个单词:quick,在5种长度下的ngram情况如下: ngram length=1,q u i c k ...
- 解读论文《Agglomerative clustering of a search engine query log》,以解决搜索推荐相关问题
<Agglomerative clustering of a search engine query log> 论文作者:Doug Beeferman 本文将解读此篇论文,此论文利用搜索日 ...
- solr 搜索引擎及搜索推荐应用
搜索框里输入关键字,从mongodb里搜索出关键字相关关键字记录.用户从相关关键字里选取一个作为最后关键字从solr里查询数据. 1创建索引:从sql里goodsinfo表查所有记录,solr.Add ...
- [LeetCode OJ] Word Search 深度优先搜索DFS
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- Graph Search图谱搜索
来自百度百科的解释: Graph Search为2013年1月16日,Facebook首席执行官马克·扎克伯格(Mark Zuckerberg)在门罗帕克公司总部召开的新闻发布会上宣布推出社交搜索工具 ...
- 最小化安装CentOS7,没有ifconfig命令---yum search command_name搜索未知包名
新安装的CentOS7系统,想查询ip的时候,发现没有ifconfig这个命令: -bash: ifconfig: 未找到命令 yum安装: 没有可用软件包 ifconfig 既然知道命令,搜索一下命 ...
随机推荐
- cas4.2的安装
cas4.2使用的是gradle来构建项目的,项目代码在https://github.com/Jasig/cas下载. 然后之后进入项目的根目录,然后执行gradle来编译项目,如下: gradle ...
- P3567 [POI2014]KUR-Couriers 主席树
这个题比一般主席树还要简单,但是用来练习主席树再好不过了,在这里我再放一下主席树板子. 代码: #include<iostream> #include<cstdio> #inc ...
- JQuery 总结
JQuery官方网站 http://jquery.com/ 1.JQuery概念 A.Jquery是一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器,jQu ...
- Vue导航守卫beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave详解
Vue导航守卫以我自己的理解就是监听页面进入,修改,和离开的功能.每个守卫接受三个参数 to: Route: 即将要进入的目标路由对象 from: Route: 当前导航正要离开的路由 next: F ...
- Vue 页面回退参数被当作字符串处理
当时情景是这样的,我从A页面跳到B页面时会传一个Boolean类型的参数,当B跳到C,再从C返回B的时候,控制台打印发现参数还在,可是判断怎么都不起作用,后来发现,当页面返回的时候,默认将参数变成了字 ...
- 高斯消元_HihoCoderOffer6_03
题目3 : 图像算子 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在图像处理的技术中,经常会用到算子与图像进行卷积运算,从而达到平滑图像或是查找边界的效果. 假设原图 ...
- [转]Oracle Client 11g安裝經驗
本文转自:http://www.dotblogs.com.tw/shadow/archive/2011/11/08/54759.aspx 開發環境:本機(Win XP)的ASP.net 4 WebSi ...
- 兼容浏览器 div固定浏览器窗口底部 浮动div
css内容: <style type="text/css"> #ken_BB { padding-right:30px; text-align: center; col ...
- Ubuntu 系统的常用快捷键
Ubuntu操作基本快捷键 ibus-setup :设置系统输入法 scp filename username@serverIp:/home/xxx/xxx/filename 回车输入该usern ...
- Android:用签名打包后微信分享失效
刚开始使用微信分享,申请的微信appid也可以在直接使用,分享成功! 当我使用自己的签名打包分享时却分享失败,一闪而过,好郁闷的说,为什么之前没有打包就可以,签名打包后就不可以了... 开始查找各种资 ...