白话Elasticsearch27-深度探秘搜索技术之误拼写时的fuzzy模糊搜索技术
文章目录
- 概述
- 官方指导
- 例子
- 推荐写法
概述
继续跟中华石杉老师学习ES,第27篇
课程地址: https://www.roncoo.com/view/55
官方指导
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html
官方Blog : https://www.elastic.co/blog/found-fuzzy-search 强烈推荐
例子
我们知道,搜索的时候,可能输入的搜索文本会出现误拼写的情况。 举个例子 如下两个doc
doc1: hello world
doc2: hello java
我们本来是想搜索hello world ,结果手误输成了hallo world ?怎么办呢 ,还能继续搜索hello world吗?
fuzzy搜索技术 --> 自动将拼写错误的搜索文本,进行纠正,纠正以后去尝试匹配索引中的数据
实例 如下:
模拟一批数据 POST /my_index/my_type/_bulk
{ "index": { "_id": 1 }}
{ "text": "Surprise me!"}
{ "index": { "_id": 2 }}
{ "text": "That was surprising."}
{ "index": { "_id": 3 }}
{ "text": "I wasn't surprised."}
查询
GET /my_index/my_type/_search
{"query": {"fuzzy": {"text": {"value": "surprize","fuzziness": 2}}}
}
返回结果:
,让我们来分析下
surprize --> 拼写错误 --> surprise --> s -> z
surprize --> surprise -> z -> s,纠正一个字母,就可以匹配上,所以在fuziness指定的2范围内
surprize --> surprised -> z -> s,末尾加个d,纠正了2次,也可以匹配上,在fuziness指定的2范围内
surprize --> surprising -> z -> s,去掉e,ing,3次,总共要5次,才可以匹配上,始终纠正不了
- fuzzy搜索以后,会自动尝试将你的搜索文本进行纠错,然后去跟文本进行匹配
- fuzziness,你的搜索文本最多可以纠正几个字母去跟你的数据进行匹配,默认如果不设置,就是2
推荐写法
一般不用上面的那种写法,常用写法如下:
GET /my_index/my_type/_search
{"query": {"match": {"text": {"query": "SURPIZE ME","fuzziness": "AUTO","operator": "and"}}}
}
返回结果:
白话Elasticsearch27-深度探秘搜索技术之误拼写时的fuzzy模糊搜索技术相关推荐
- 深度探秘大数据新应用,2018 中国大数据技术大会(BDTC)强势来袭!
2018 年12 月 6 -8日,由中国计算机学会主办,CCF大数据专家委员会承办,CSDN.中科天玑数据科技股份有限公司协办的2018 中国大数据技术大会(BDTC),在北京新云南皇冠假日酒店隆重召 ...
- 白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端
文章目录 概述 例子 概述 继续跟中华石杉老师学习ES,第15篇 课程地址: https://www.roncoo.com/view/55 白话Elasticsearch14-基于multi_matc ...
- 白话Elasticsearch20-深度探秘搜索技术之使用rescoring机制优化近似匹配搜索的性能
文章目录 概述 官网 match和phrase match(proximity match)区别 优化proximity match的性能 概述 继续跟中华石杉老师学习ES,第19篇 课程地址: ht ...
- 白话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 ...
- 白话Elasticsearch26-深度探秘搜索技术之function_score自定义相关度分数算法
文章目录 概述 官方说明 例子 概述 继续跟中华石杉老师学习ES,第26篇 课程地址: https://www.roncoo.com/view/55 官方说明 https://www.elastic. ...
- 白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐
文章目录 概述 官网 什么是ngram 什么是edge ngram ngram和index-time搜索推荐原理 例子 概述 继续跟中华石杉老师学习ES,第23篇 课程地址: https://www. ...
- 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索
文章目录 概述 官网 近似匹配 例子 match query match phrase query term position match_phrase的基本原理 概述 继续跟中华石杉老师学习ES,第 ...
- 白话Elasticsearch15-深度探秘搜索技术之使用copy_to定制组合field解决cross-fields搜索弊端
文章目录 概述 官网 例子 总结 概述 继续跟中华石杉老师学习ES,第15篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.c ...
最新文章
- Linux常用命令及技巧1
- SQLite可视化管理工具汇总
- 【转】使用Chrome Frame,彻底解决浏览器兼容问题
- 厉害了!Antiilatency推出移动位置追踪器!
- mysql单机多实例主从_【转载】MySQL单机多实例安装并配置主从复制
- 阿里巴巴公布“云钉一体”战略:阿里云与钉钉全面融合
- python程序实例源代码-python实例-兔子和獾(塔防游戏)附源码
- Linux Kernel中local_irq_enable()和local_irq_disable()的实现
- 【Shell】使用记录
- 4种趋势将在2021-2021年改变您的数据和分析策略
- 快搜浏览器_opera、Google、firefox三个浏览器的选择
- 稀疏矩阵的压缩存储--十字链表(转载)
- 使用和了解Valgrind核心:高级主题
- 经典laravel后台管理系统
- 解决局域网文件共享“****无法复制,指定的网络名不可用”
- vue项目实现高德地图截图
- 360游戏大厅打不开HTML游戏,360游戏大厅打不开怎么办
- BGP高防服务器与普通高防服务器有什么区别?
- CE修改器入门:精确数值扫描
- UI自动化框架 基于selenium+pytest和PO分层思想
热门文章
- bigquery按照小时来聚合数据
- float python_Python中float('INF')的使用
- Leetcode 344. 反转字符串 (每日一题 20210812)
- 排成一条线的纸牌博弈问题
- 重温强化学习之无模型学习方法:蒙特卡洛方法
- 重温强化学习之马尔可夫决策过程(MDPs)
- 机器学习笔记: Discriminative vs Generative Models
- 产品经理必备知识之网页设计系列(三)-移动端适配无障碍设计及测试
- hadoop学习--单表关联
- 账号 linux_Linux入门之UID和GID(用户ID和组ID)