当前位置:   article > 正文

32.ES中什么是fuzzy(模糊)查询?如何进行fuzzy查询?java如何进行fuzzy查询?嘻哈的简写笔记——Elastic Search_es fuzzy

es fuzzy

1.ES中什么是fuzzy(模糊)查询?如何进行fuzzy查询?

模糊查询,我们输入字符的大概,ES就可以去根据输入的内容大概去匹配一下结果;
注意:他和我们在MySQL中的模糊查询还是有区别的,他有个偏移值;比如:当我们在京东中输入appla 的时候他会出现许多apple(苹果),就像它有个自动修正似的;它就是按照匹配的相似度来的;也就是说,一些信息,有对的也有错误的,它会利用这些大概的信息,给我们匹配信息出来
他有几个属性,例如:设置保证前几个是不能出错,设置最大的偏移量(也就是可以错误几个值)

#模糊查询fuzzy
GET /book/novel/_search
{
  "query": {
    "fuzzy": {
      "name": {
        "value": "我的好",
        "fuzziness": 2     #偏差的个数
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

解释:name字段中的数据和关键字**“我的好”进行匹配;”fuzziness”:2 含义是允许匹配的数字与关键字有最多两个字的偏差**(不同);

#模糊查询fuzzy
GET /book/novel/_search
{
  "query": {
    "fuzzy": {
      "author": {
        "value": "滔滔滔",
        "prefix_length": 1  #指定前面几个字符是不允许出现错误的
      }
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

解释:author字段中的数据和关键字“滔滔滔”,进行匹配;”prefix_length”: 1 含义是指定前面几个字符是不允许出现错误的;
注意:prefix_lengthfuzziness这两个属性是进一步筛选的,如果有些词语查不出来,原因是就算当没有这两个属性的时候也无法进行匹配出来;所以加上了这两个属性,就更不能匹配出来;这里要注意;如果有问题,就先把这两个属性先去掉试试;

2.java如何进行fuzzy查询?

@Test //fuzzy模糊查询
public void test18() throws IOException {
    //把字段名,和关键字作为参数传进去;
    QueryBuilder queryBuilder = QueryBuilders.fuzzyQuery("author","滔滔滔").prefixLength(3);
    ClientUtils.queryTemplate(indextName,typeName,queryBuilder);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/784905
推荐阅读
相关标签
  

闽ICP备14008679号