首页 > 其他分享 >Es中fuzzy和match_phrase的区别

Es中fuzzy和match_phrase的区别

时间:2023-05-31 23:44:32浏览次数:83  
标签:短语 查询 match phrase fuzzy 分词 Es

match_phrase:短语模糊查询

match用于分词模糊查询,比如说我们查询”一共多少个词语”,但我们需要查询“共多“的时候,如果没有指定分词器,使用默认分词的话,会将共多分成”共”,”多”进行模糊查询,但不符合我们的业务需求,那么我们就需要使用ik分词器配置词典”共多”

 

但是,这样的话我们对于这种业务场景可能会配置大量的词典,所以我们可以采用match_phrase进行短语模糊查询

match_phrase用于短语模糊查询,还是查询”一个多少个词语”,即它会将给定的短语”共多”当成一个完整的查询条件,然后查出含有该查询条件的内容

 

还可以通过slop参数告诉match_phrase查询词条能够相隔多远时仍然将文档视为匹配,默认是0。为0时 必须相邻才能被检索出来

 

注意:我们实际上可能会用不同的分词器,但是建议使用match_phrase时使用标准的一个个分词,这样是方便进行邻近搜索的控制的,如果使用ik等分词,执行match_phrase时分词是不可控的,所以结果也是不可控。match使用ik,match_phrase用standard结合一起使用也是可以的

 搜索的词必须有且仅有["","方","宾","馆"]这几个词(对于中文是字)的一个或者多个,如果有其他的词(对于中文是字)是不会匹配到的,slop不是完全等同于莱文斯坦距离,可以理解成字符的偏移

 

 

 

 

es fuzzy的使用场景:

在我们平时开发场景中,有可能会出现文本拼写错误的情况,那么查询的时候可以使用fuzzy搜索技术---->可以自动将拼写错误的搜索文本,进行纠正,纠正以后去匹配索引中的数据

 

标签:短语,查询,match,phrase,fuzzy,分词,Es
From: https://www.cnblogs.com/lbc0612/p/17447694.html

相关文章

  • Font-AweSome在Vue中的使用
    Font-AweSome在Vue中的使用yarnaddfont-awesome或者npmifont-awesome-S在main.js中引入import'font-awesome/css/font-awesome.min.css'Vue中使用<iclass="fafa-camera-retro"></i> ......
  • ES部署+Kibana部署+IK分词器(单节点)
    一、Elasticsearch7.9.1官网下载地址:ElasticsearchES7.9.1,内置了JDK,我是centos系统,下载LINUXX86_64下载、解压、放到/usr/es/下二、配置cd/usr/es&&llvi/elasticsearch/config/elasticsearch.yml#打开节点名称node.name:node-1#这里的node-1为node-name配置的值clus......
  • 3、实战案例:部署基于JAVA的博客系统JPress
    官方网站:http://www.jpress.io/安装包下载第一步:[root@ubuntu2004]#mkdir/data/jpress/-p创建网站数据存放的目录,ROOT可以不建把下载好的包拉进/data/jpress/目录,并改名为ROOT.war,它会自动解压成一个ROOT文件夹[root@ubuntu2004jpress]#rz-Erzwaitingtoreceive.[root@......
  • LESS的使用
    CSS的缺陷在开发过程中CSS有许多不方便之处,例如不支持加减乘除运算,各种选择器之间的嵌套关系不明显等,不利于后期维护。less简介Less是一门CSS预处理语言,它扩充了CSS语言,增加了诸如变量、混合(mixin)、函数等功能,让CSS更易维护、方便制作主题、扩充。less文件最终可以编译成为css......
  • w-process diagram
    nonumberscan'tcomapreanythingcan'tdescribetrends natrualcycles.lifecycleofabutterfly Whatcanwedescribe?howmanysteps.wheretheprocessbeginsandendseachstepintheprocess. spetslanguages:Atthefirststagein......
  • ES6新特性
    ES6新特性ES6官方文档:https://es6.ruanyifeng.com参考笔记:https://docs.mphy.top/#/ECMAScript6+/ch01一、ES6相关介绍ES全程EcmaScript,是脚本语言的规范,而平时经常编写的JavaScript,是EcmaScript的一种实现,所以ES新特性其实指的就算JavaScript的新特性。1.1什么是ECMAECMA(E......
  • hibernate session
       ......
  • 【React工作记录七十七】React+hook+ts+ant design封装一个input和select搜索的组件
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷微信公众号前端小歌谣需求分析首先我们需要实现......
  • 【React工作记录七十八】React+hook+ts+ant design封装一个table的组件
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷微信公众号前端小歌谣需求分析在前端项目中最常......
  • 2023年5月31日,包装类,Match,System
    1.包装类/** *知识点:包装类 *理解:8种基本数据类型对应类 *出现原因:Java为纯面向对象语言(万物皆对象),8种基本数据类型不能new对象。 * 就破坏了Java为纯面向对象语言的特征,所以Java又为8种基本数据类型 * 分别匹配了对应的类,这种类叫做包装类/封装类 * ......