读《深入理解Elasticsearch》点滴-改正用户拼写错误
1、使用“建议”的方法:在query body的json结构体中,增加suggest节点;或者使用特殊的REST端点
2、es自带有多个不同的suggest实现,用来纠正用户的拼写错误及创建自动补全等功能
3、如果索引中文档较少,则可能找不到合适建议的结果
4、有三种那个suggester:term suggester,phrase suggester,complete suggester(自动完成)
5、使用suggest REST端点
POST 'localhost:9200/myindex/_suggest?pretty'
{
"first_suggestion":{
"test":"world war ii",
"term":{
"field":"_all"
}
},
"second_suggestion":{
"text":"raceing",
"term":{
"field":"text"
}
}
}
查询后将返回建议列表
6、在查询请求中包含建议请求
POST ‘localhost:/myindex/_search?pretty'
{
"query":{
"match_all":{}
},
"suggest":{
"first_suggestion":{
"text":"wordl war ii",
"term":{
"field":"_all"
}
},
"second_suggestion":{
"text":"wordl war ii",
"term":{
"field":"_all"
}
}
}
}
查询结果包括了“查询结果、建议结果”
7、事实上,term suggester 基于编辑距离来运作。这意味着,加一次通过增删改某些字符转化为原词所改动的字符数越少,它越有可能是最佳选择。距离worl转化为work,改动了一个字符,因此编辑距离为1.当然,suggester的text文本需要先经过分词转化为词项。对原始输入句子的每个词都给出建议列表。
8、term suggester的通用配置选项
- text:原始输入,有错误的问题
- field:制定产生建议的字段
- analyzer:
- size:每个词项的最大建议词数量,默认5
- sort:
- suggest_mode:可用3个“missing、popular、always”。默认值missing,要求es对text参数的词项做一个区分对待,如果该词项不存在于索引中,则返回建议词,否则,不返回;如果取值为“popu lar”,则es在生成建议词做一个判断,如果建议词比原词更受欢迎,则返回,否则不返回。如果取值为“always”,指为每个text中的每个词生成建议词。
- 其他配置参数
9、phrase suggester:基于n-gram方法将索引中词项切分成gram。举例,如果将单词“mastering”采用bi-bigrams方法切分,则切分结果为:ma as st te er ri in ng
10、phrase suggester支持高亮配置
11、completion suggester 自动完成:es设计者们决定在索引过程中创建类似FST的数据结构,并把它存储在索引中,需要的时候可以加载进内存
12、为了使用使用基于前缀的suggester,我们需要在定义mappings时,某个字段使用“completion”类型的字段来索引数据。
13、如果使用自动完成功能,其类型是强制提供的,必须是complete。
14、请记住payload必须是一个json对象,{"books":["1234","3243"]}
读《深入理解Elasticsearch》点滴-改正用户拼写错误的更多相关文章
- 深入理解ElasticSearch(PDF版 内含目录)
深入理解ElasticSearch 介绍: 本书涵盖了Elasticsearch的许多中高级功能,并介绍了缓存.ApacheLucene库以及监控等模块的内部运作机制.其中,还涉及一些实用案例,比如配 ...
- mysql系列:加深对脏读、脏写、可重复读、幻读的理解
关于相关术语的专业解释,请自行百度了解,本文皆本人自己结合参考书和自己的理解所做的阐述,如有不严谨之处,还请多多指教. 事务有四种基本特性,叫ACID,它们分别是: Atomicity-原子性,Con ...
- 《深入理解Elasticsearch》README
书目 <深入理解ElasticSearch>拉斐尔·酷奇,马雷克·罗戈任斯基[著]张世武,余洪森,商旦[译] 机械工业出版社,2016.1 本系列包括以下8篇笔记 第01章 Elastic ...
- 读《深入理解Elasticsearch》点滴-Elastic HQ监控工具
1.多节点监控 2.类似war功能部署,tomcat即可使用 3.免费 4.ElasticHQ supports all major version of Elasticsearch from ver ...
- 读《深入理解Elasticsearch》点滴-聚合-top_hits
以下是官网手册(部分)(v5.1) 直接直接看官网手册 https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-aggre ...
- 读《深入理解Elasticsearch》点滴-查询二次评分
理解二次评分 二次评分是指重新计算查询返回文档中指定个数文档的得分,es会截取查询返回的前N个,并使用预定义的二次评分方法来重新计算他们的得分 小结 有时候,我们需要显示查询结果,并且使得页面上靠前文 ...
- 读《深入理解Elasticsearch》点滴-查询模版(结合官网手册,版本5.1)
1.为什么使用查询模版 让应用程序开发者只需要把查询传递给elasticsearch,而不需要考虑查询语句的构造.查询DSL语法.查询结果过滤等细节知识. 2.使用版本5.1,查询模版在5.6中发生变 ...
- 读《深入理解Elasticsearch》点滴-查询评分
计算文档得分的因子: 文档权重(document boost):索引期赋予某个文档的权重值 字段权重(field boost):查询期赋予某个文档的权重值 协调因子(coord):基于文档中词项个数的 ...
- 读《深入理解Elasticsearch》点滴-基础概念
Lucene的概念 document:以json的形式体现,搜索和搜索的主要载体 field:document的一个部分 term(词项):代表文本中的一个词 token(词条):term在field ...
随机推荐
- 单页面应用的History路由模式express后端中间件配合
这篇文章主要分享一下通过HTML5的history API的时候,使用NodeJS后端应该如何配置,来避免产生404的问题,这里是使用的express的框架,主要是通过connect-history- ...
- CodeForces 779D. String Game(二分答案)
题目链接:http://codeforces.com/problemset/problem/779/D 题意:有两个字符串一个初始串一个目标串,有t次机会删除初始串的字符问最多操作几次后刚好凑不成目标 ...
- Windows下安装youtube-dl(下载各大网站视频)
youtube-dl干什么用的? 惯例,看官方介绍: youtube-dl is a command-line program to download videos from YouTube.com ...
- ubuntu下创建定时任务的两种方式及常见问题解决方案
创建定时任务的目的就是摆脱人为对程序重复性地运行. 0. 首先用下面的指令检查你是否安装crontab, crontab -l 如果本身就有的话,那么出现如下指令 LC_CTYPE="zh_ ...
- 深入SpringMVC视图解析器
ViewResolver的主要职责是根据Controller所返回的ModelAndView中的逻辑视图名,为DispatcherServlet返回一个可用的View实例.SpringMVC中用于把V ...
- Python基础:Python运行的两种基本方式
完成Python的安装之后,我们可以开始编写Python代码以及运行Python程序了.我们来看一下运行Python具体有哪几种方式 1.REPL 所谓REPL即read.eva.print.loop ...
- java多线程之创建线程的4种方式及Future
Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用四种方式来创建线程: 继承Thread创建线程 实现Runnable接口创建线程 实现callab ...
- Python(Head First)学习笔记:一
目录: 1 认识Python:Python的特点.安装.开发环境搭建 2 共享代码:连接共享社区.语法.函数.技巧 3 文件与异常:调试.处理错误.迭代.改进.完善 4 持久存储:文件存储.读写 5 ...
- 实验吧CTF练习题---安全杂项---异性相吸解析
---恢复内容开始--- 实验吧安全杂项之异性相吸 地址:http://www.shiyanbar.com/ctf/1855 flag值:nctf{xor_xor_xor_biubiubiu} ...
- abp(net core)+easyui+efcore实现仓储管理系统——EasyUI前端页面框架 (十八)
目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) ab ...