【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);
相关推荐
Elasticsearch6 小时前
使用 Qoder 将 CSV 文件导入 Elasticsearch
elasticsearch
Elastic 中国社区官方博客8 小时前
AgentHack Shanghai|基于阿里云AI搜索 Elasticsearch x Qoder 构建AI Agent应用
大数据·人工智能·elasticsearch·搜索引擎·阿里云·云计算·全文检索
无言听风雨丶9 小时前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
全栈陈序员10 小时前
【Git】从入门到精通(六)—— git commit:提交到版本库
大数据·git·elasticsearch
真上帝的左手10 小时前
30. 技术专题-‌应用框架组件-搜索引擎-ES
大数据·分布式·elasticsearch·搜索引擎·中间件
Elasticsearch10 小时前
两条规则,一次故障,一条告警:变点检测如何减少告警噪声
elasticsearch
全栈陈序员1 天前
【Git】从入门到精通(一)—— Git简介:什么是版本控制系统
大数据·git·elasticsearch
阿里云大数据AI技术1 天前
云栖实录|阿里云AI搜索系列产品全新发布 - 新引擎
人工智能·elasticsearch
Elasticsearch1 天前
把词向量“贴”在地球仪上:用球面视角看 Embedding 的真实几何
elasticsearch
Elastic 中国社区官方博客1 天前
基于 Elasticsearch 与 Jina AI 的全模态智能搜索实践:技术全解析
大数据·人工智能·elasticsearch·搜索引擎·ai·信息可视化·jina