文章目录

  • 概述
  • 官方指导
  • 例子
  • 推荐写法

概述

继续跟中华石杉老师学习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模糊搜索技术相关推荐

  1. 深度探秘大数据新应用,2018 中国大数据技术大会(BDTC)强势来袭!

    2018 年12 月 6 -8日,由中国计算机学会主办,CCF大数据专家委员会承办,CSDN.中科天玑数据科技股份有限公司协办的2018 中国大数据技术大会(BDTC),在北京新云南皇冠假日酒店隆重召 ...

  2. 白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端

    文章目录 概述 例子 概述 继续跟中华石杉老师学习ES,第15篇 课程地址: https://www.roncoo.com/view/55 白话Elasticsearch14-基于multi_matc ...

  3. 白话Elasticsearch20-深度探秘搜索技术之使用rescoring机制优化近似匹配搜索的性能

    文章目录 概述 官网 match和phrase match(proximity match)区别 优化proximity match的性能 概述 继续跟中华石杉老师学习ES,第19篇 课程地址: ht ...

  4. 白话Elasticsearch18-深度探秘搜索技术之基于slop参数实现近似匹配以及原理剖析

    文章目录 概述 官网 slop 含义 例子 示例一 示例二 示例三 概述 继续跟中华石杉老师学习ES,第18篇 课程地址: https://www.roncoo.com/view/55 接上篇博客 白 ...

  5. 白话Elasticsearch13-深度探秘搜索技术之基于multi_match+most fields策略进行multi-field搜索

    文章目录 概述 官网 示例 构造模拟数据 普通查询 使用 multi_match + most fileds查询 best fields VS most fields 概述 继续跟中华石杉老师学习ES ...

  6. 白话Elasticsearch26-深度探秘搜索技术之function_score自定义相关度分数算法

    文章目录 概述 官方说明 例子 概述 继续跟中华石杉老师学习ES,第26篇 课程地址: https://www.roncoo.com/view/55 官方说明 https://www.elastic. ...

  7. 白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐

    文章目录 概述 官网 什么是ngram 什么是edge ngram ngram和index-time搜索推荐原理 例子 概述 继续跟中华石杉老师学习ES,第23篇 课程地址: https://www. ...

  8. 白话Elasticsearch17-深度探秘搜索技术之match_phrase query 短语匹配搜索

    文章目录 概述 官网 近似匹配 例子 match query match phrase query term position match_phrase的基本原理 概述 继续跟中华石杉老师学习ES,第 ...

  9. 白话Elasticsearch15-深度探秘搜索技术之使用copy_to定制组合field解决cross-fields搜索弊端

    文章目录 概述 官网 例子 总结 概述 继续跟中华石杉老师学习ES,第15篇 课程地址: https://www.roncoo.com/view/55 官网 https://www.elastic.c ...

最新文章

  1. Linux常用命令及技巧1
  2. SQLite可视化管理工具汇总
  3. 【转】使用Chrome Frame,彻底解决浏览器兼容问题
  4. 厉害了!Antiilatency推出移动位置追踪器!
  5. mysql单机多实例主从_【转载】MySQL单机多实例安装并配置主从复制
  6. 阿里巴巴公布“云钉一体”战略:阿里云与钉钉全面融合
  7. python程序实例源代码-python实例-兔子和獾(塔防游戏)附源码
  8. Linux Kernel中local_irq_enable()和local_irq_disable()的实现
  9. 【Shell】使用记录
  10. 4种趋势将在2021-2021年改变您的数据和分析策略
  11. 快搜浏览器_opera、Google、firefox三个浏览器的选择
  12. 稀疏矩阵的压缩存储--十字链表(转载)
  13. 使用和了解Valgrind核心:高级主题
  14. 经典laravel后台管理系统
  15. 解决局域网文件共享“****无法复制,指定的网络名不可用”
  16. vue项目实现高德地图截图
  17. 360游戏大厅打不开HTML游戏,360游戏大厅打不开怎么办
  18. BGP高防服务器与普通高防服务器有什么区别?
  19. CE修改器入门:精确数值扫描
  20. UI自动化框架 基于selenium+pytest和PO分层思想

热门文章

  1. bigquery按照小时来聚合数据
  2. float python_Python中float('INF')的使用
  3. Leetcode 344. 反转字符串 (每日一题 20210812)
  4. 排成一条线的纸牌博弈问题
  5. 重温强化学习之无模型学习方法:蒙特卡洛方法
  6. 重温强化学习之马尔可夫决策过程(MDPs)
  7. 机器学习笔记: Discriminative vs Generative Models
  8. 产品经理必备知识之网页设计系列(三)-移动端适配无障碍设计及测试
  9. hadoop学习--单表关联
  10. 账号 linux_Linux入门之UID和GID(用户ID和组ID)