es模糊查询

这篇具有很好参考价值的文章主要介绍了es模糊查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

特别注意:es的模糊查询,只支持keyword;之前踩过的坑,使用正则的方式模糊查询(QueryBuilders.regexpQuery("name.keyword", ".*" + student.getName() + ".*")),遇到特殊符号比如 \ 斜杠,英文的""引号,则匹配不上。

最终总结如下方法可匹配任意字符的模糊查询,可供参考:

private static final Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))");
----------------------------------------------------------------

//简单的例子:这里是分页查询,按学生名字模糊查询,然后按添加时间倒序
public NativeSearchQuery getSearchQuery(Student student, Pageable pageRequest){

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();

queryBuilder.filter(QueryBuilders.wildcarQuery("name.keyword", "*" + this.unicodeToString(student.getName()) + "*")));

NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
return  nativeSearchQueryBuilder
         .withQuery(queryBuilder)
         .withSort(SortBuilders.fieldSort("addTime").order(SortOrder.DESC))
         .withPageable(pageRequest)
         .build();  
}
----------------------------------------------------------------
private String unicodeToString (String str){
//将字符串转义
str = StringEscapeUtils.escapeJava(str);
//将Unicode编码格式转化为中文
Match match = pattern.matcher(str);
char ch;
while(matcher.find()){
    ch = (char) Integer.parseInt(matcher.group(2), 16);
    str = str.replace(matcher.group(1), ch + "");
  }
return str;

}

}文章来源地址https://www.toymoban.com/news/detail-506592.html

到了这里,关于es模糊查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES模糊查询失效的坑,附解决方案

    最近在做需求开发的时候,有个需求,需要根据去ES中进行模糊搜索。于是首先想到了wildcard查询,根据,利用*通配符,类似于mysql中的like一样进行模糊搜索。 但是遇到了问题就是,根据单个汉字能正常模糊搜索,多个汉字就无法查询出数据。 单个汉字正常查询

    2024年02月11日
    浏览(54)
  • 记一次模糊查询踩坑 Flink+ES

    公司需要对商品名称进行模糊模糊查询,考虑到商品表存量数据千万级,直接数据库模糊查询效率肯定极其低下,所以选择使用 ElasticSearch 对商品信息进行模糊查询。 因为需要代替原有的查询接口,保持原有查询接口的入参出参,所以需要全量+增量同步MySQL数据到ES进行索引

    2024年02月05日
    浏览(46)
  • clickhouse 代替 es 如何对文档做模糊查询?

    模糊查询在日志存储的场景中非常普遍。 ClickHouse 作为大数据分布式引擎,理所当然地会被作为日志存储的备选方案。事实上使用 ClickHouse 作为日志存储方案,业界目前也已经在多家企业落地,比如 Uber 、石墨文档、映客、快手、携程、唯品会等。 日志查询的一个最大的特点

    2024年01月21日
    浏览(58)
  • ElasticSearch入门:使用ES来实现模糊查询功能

    本文针对在工作中遇到的需求:通过es来实现 模糊查询 来进行总结;模糊查询的具体需求是:查询基金/A股/港股等金融数据,要求可以根据 字段 , 拼音首字母 , 部分拼音全称 进行联想查询;需要注意的是,金融数据名称中可能不止包含汉字,还有英文,数字,特殊字符等

    2023年04月09日
    浏览(45)
  • ES&elasticsearch-header菜鸟教程06--模糊查询

    一 prefix前缀查询 二 wildcard通配符查询 三 regexp正则查询

    2024年02月15日
    浏览(34)
  • 银行卡二要素验证API接口:支持银行名称模糊查询

    随着金融科技的发展,越来越多的人选择在线银行或移动银行上进行日常交易。在进行这些交易之前,通常需要进行身份验证以确保账户的安全性。其中,银行卡二要素验证是一种常见的身份验证方式。本文将为大家介绍如何使用银行卡二要素验证API接口,具体实现方法如下

    2024年02月09日
    浏览(43)
  • ES 一些简单 的查询注意事项

    term query 不分词字段 带分数 where name=xxx filter 分词字段 不分词字段 不带分数 Terms query 所有类型 带分数 where name in(xxx) Range query where name between xxx and xxx Exists Regexp Match query 分词字段/基础字段 Multi-match query 多个分词字段/基础字段 Boolean query 复合查询 must should 带分数 filter must

    2024年02月12日
    浏览(85)
  • 如何使用ES做简单的时间条件过滤+模糊查询+精确匹配+关键字排除,查询 elasticsearch查询结果包含或排除某些字段、_source查询出需要的属性名称

    目录 一、时间条件过滤+模糊查询+精确匹配+排除 1. 查询出包含 log_geo 的数据 “wildcard”: { “message”: “log_geo” } 2. 查询某个时间段的数据 3. 条件查询与条件排除数据 4. from 表示起始的记录的ID 5. size 表示显示的记录数 6.sort排序 desc降序、asc升序  7.should查询在mysql中

    2024年01月18日
    浏览(68)
  • Es支持的查询方式

    1. Match Query:匹配查询,可以用于匹配一个字段中的文本。 2. Term Query:精确查询,用于匹配一个字段中的确切值。 3. Range Query:范围查询,用于匹配一个字段中的值在指定范围内的文档。 4. Bool Query:布尔查询,可以将多个查询组合起来使用。 5. Wildcard Query:通配符查询,用

    2024年02月13日
    浏览(37)
  • 使用ES Term query查询时一定要注意的地方

    使用 Term query 可以根据精确值查找相关文档数据,不过 Term query 查询与 Match query 查询还是有区别的,有时候你会发现用 Match query 可以查到,换成 Term query 却不行,本文整理一些使用 Term query 容易出错的点供参考。 如果你查看 Term query 的官方文档,你就会发现,官网首先对

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包