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查询
匹配关键词查询; 需要分词,对未分词数据进行查询无法达到预定效果