【ES】---Aggregation聚合,遇到String类型如何分组

目录

一、左右模糊查询

在单纯搜索中,要达到左右模糊查询,可采用 fuzzyQuery: 左右模糊查询 【不分词,fuzziness的参数作用是在查询时,es动态的将查询关键词前后增加或者删除一个词,然后进行匹配】。

例如:

java 复制代码
FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilders.fuzzyQuery(fieldName, input).fuzziness(Fuzziness.ONE);
searchSourceBuilder.query(fuzzyQueryBuilder);

二、遇到string类型进行聚合分组

在一些聚合中,按照一定要求聚合,遇到string类型进行聚合分组。

2.1、string类型分组

如果是完整string类型分组:

java 复制代码
AggregationBuilder aggregationBuilder = AggregationBuilders.terms("group_by_extension")
        .script(new Script("doc['extension.keyword'].value.toUpperCase()")).size(Integer.MAX_VALUE);
//'extension是类型pdf,xlsx等
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.size(0);
searchSourceBuilder.query(boolQueryBuilder); //查询匹配条件
searchSourceBuilder.aggregation(aggregationBuilder); //分组聚合条件

2.2、Date类型(format)分组

java 复制代码
//由于(String类型)time存储形式是2023-07-23 00:00:06,而根据统计要求,按照月份维度进行统计,所以需要对create_time字段值进行转换下
AggregationBuilder aggregationBuilder = AggregationBuilders.terms("group_by_time")
        .script(new Script("doc['create_time.keyword'].value.substring(0, 7)")).size(Integer.MAX_VALUE);
相关推荐
Wzx1980126 小时前
Redis&ES——Retriever的抽象实现
数据库·人工智能·redis·elasticsearch
Elasticsearch9 小时前
让向量听懂孤独:我是如何用 Elastic Agent Builder 构建一个情绪疗愈 agent 的
elasticsearch
Elasticsearch10 小时前
你的 AI 表现不佳。你的数据基础才是问题
elasticsearch
leoZ23110 小时前
Git 集成实战完全指南(三):自动化 Commit 与 PR
大数据·git·elasticsearch
Elasticsearch12 小时前
Elastic: 将来一年中 AI 从活动转向成果
elasticsearch
Chockmans13 小时前
春秋云境CVE-2023-51385(保姆级教学)
大数据·web安全·elasticsearch·搜索引擎·网络安全·春秋云境·cve-2023-51385
Elasticsearch14 小时前
一张图片胜过 1.5 倍的文字:我们从产品搜索 embeddings 基准测试中学到了什么
elasticsearch
吉甫作诵14 小时前
Elasticsearch 常用运维命令大全
运维·elasticsearch
干了这杯柠檬多1 天前
Elasticsearch 深度分页:Scroll vs PIT + search_after
elasticsearch
leoZ2311 天前
Git 集成实战完全指南(二):智能分支管理
大数据·git·elasticsearch