查询实例:
1.type:xxx,value:xxx

{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"内容": "资产/负债"
}
}
]
}
},
"aggs": {
"3": {
"terms": {
"field": "所属年份",
"size": 20
},
"aggs": {
"4": {
"terms": {
"field": "数值"
}
}
}
}
}
}

2.多条件查询 must变成数组,里面写成对象的形式

3.查询最新一年:range:{xxx,format:xxx} 最新几个月
elasticsearch时间范围查询中的format参数用于指定日期格式。当执行时间范围查询时,elasticsearch需要知道如何解析和比较日期字段的值。
format参数可以接受多种日期格式,例如:"yyyy-MM-dd","yyyy/MM/dd","dd.MM.yyyy"等。通过指定正确的日期格式,elasticsearch可以正确地解析日期字段的值,并将其与查询中指定的时间范围进行比较。
如果没有明确指定format参数,elasticsearch会尝试使用默认的日期格式进行解析。然而,如果日期字段的值不符合默认的格式,那么查询可能会失败或者返回不准确的结果。
因此,在执行时间范围查询时,确保正确指定format参数以匹配日期字段的实际格式,这样可以确保查询的准确性和一致性。
没有配置format的时候,查询出来的数据少了最新一年最新一个月份的
3-1.需求:取最新一年,最新10个月的数据

"date_histogram": {
"field": "所属年份",
"interval": "1M",
"time_zone": "Asia/Shanghai"
},
// 暂未理解,写成"terms": {"field": "所属年份","size": 99}, 也是正确结果好像
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"内容": "客服答疑数"
}
},
{
"range": {
"_time": {
"gte": "now/y",
"lt": "now/d",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
}
]
}
},
"aggs": {
"3": {
"date_histogram": {
"field": "所属年份",
"interval": "1M",
"time_zone": "Asia/Shanghai"
},
"aggs": {
"4": {
"sum": {
"field": "数值"
}
}
}
}
}
}
3-2.查询最新一年最新一个月 不同类型内容求和
可以先取出最新一年中最新几个月的,在通过js取数组中第一个就是最新的一个月的数据
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"资金性质": "活期"
}
},
{
"range": {
"_time": {
"gte": "now/M-10M",
"lt": "now/d+1d",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
}
]
}
},
"aggs": {
"1": {
// es提供的时间处理函数
"date_histogram": {
"field": "所属年份",// 需要聚合分组的字段名称, 类型需要为date, 格式没有要求
"interval": "1M", // 按什么时间段聚合, 5m就是5分钟, 可用的interval在上面给出
"time_zone": "Asia/Shanghai" // 设置时区, "time_zone":"+08:00", 这样就相当于东八区的时间
},
"aggs": {
"2": {
"sum": {
"field": "金额(万元)"
}
}
}
}
}
}

最后再取数组中第0位即可
3-2.查询最近一周

4.模糊查询 分词wildcard
其中?代表任意一个字符*代表任意的一个或多个字符 ??

{
"size": 0,
"query": {
"bool": {
"must": [
{
"wildcard": {
"内容": "*本年预算支出*" //其中?代表任意一个字符,*代表任意的一个或多个字符
}
},
{
"range": {
"_time": {
"gte": "now/y",
"lt": "now/d+1d",
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "+08:00"
}
}
}
]
}
},
"aggs": {
"1": {
"sum": {
"field": "本年数(元)"
}
}
}
}
5.查询部分数据
{
"size": 10,
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
}
],
"must_not": []
}
}
}
},
"_source": [
"媒体名称",
"采访事由",
"联系单位",
"是否同意采访"
],
"aggs": {}
}