es模糊查询

prefix查询

前缀查询,可以通过一个关键字 去指定一个field的前缀,从而查询到指定的文档

fuzzy查询

模糊查询,我们输入字符的大概,ES就可以根据输入的内容去大概匹配一下结果,
同时也支持输入关键字的错别字,所以fuzzy查询本身相对不太精确和稳定,即错别字太多也可能导致查询无结果,需要则中使用。
不同于 MySQL 的 Like 查询,比 Like 查询要强大。

fuzzy 查询会用到两个很重要的参数,fuzziness,prefix_length

fuzziness:表示输入的关键字通过几次操作可以转变成为ES库里面的对应field的字段
操作是指:新增一个字符,删除一个字符,修改一个字符,每次操作可以记做编辑距离为1,
如中文集团到中威集团编辑距离就是1,只需要修改一个字符;
该参数默认值为0,即不开启模糊查询,一样的,
如果fuzziness值在这里设置成2,会把编辑距离为2的东东集团也抓出来。

prefix_length:表示限制输入关键字和ES对应查询field的内容开头的第n个字符必须完全匹配,不允许错别字匹配
如这里等于1,则表示开头的中字必须匹配,不匹配则不返回
默认值也是0
加大prefix_length的值可以提高效率和准确率。

wildcard查询

通配查询,和MySQL中的 Like 是一个套路,可以在查询时,在字符串中指定通配符*和占位符?

regexp查询

正则表达式查询,通过编写的正则表达式进行内容匹配

match查询

匹配关键词查询; 需要分词,对未分词数据进行查询无法达到预定效果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容