大家好,欢迎来到IT知识分享网。
Elasticsearch模糊查询
ES模糊查询共有三种:
1.match 分词匹配查询和match_phrase短语查询
Elasticsearch的match_phrase短语查询跟match的区别就是,关键词作为一个整体进行搜索,而不是拆分成一个个关键词。
当匹配对象为中文时,建议使用:
MatchPhraseQueryBuilder query = QueryBuilders.matchPhraseQuery(“name”, “*”+req.getName()+”*”);
2.wildcard 通配符检索
类似SQL中的like,可以拼接*
WildcardQueryBuilder query = QueryBuilders.wildcardQuery(“tel”, “*”+req.getTel()+”*”);
3.fuzzy 纠错查询,有一定容错性
亲测:match_phrase可行;
ES的OR实现:
BoolQueryBuilder query2 = QueryBuilders.boolQuery(); BoolQueryBuilder shouldQuery = QueryBuilders.boolQuery(); shouldQuery.should(QueryBuilders.wildcardQuery("a" , "1")); shouldQuery.should(QueryBuilders.wildcardQuery("b" , "1")); query2.must(shouldQuery);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30286.html