查询实例1.typexxxvaluexxx{ size: 0, query: { bool: { must: [ { term: { 内容: 资产/负债 } } ] } }, aggs: { 3: { terms: { field: 所属年份, size: 20 }, aggs: { 4: { terms: { field: 数值 } } } } } }2.多条件查询 must变成数组里面写成对象的形式3.查询最新一年range{xxxformat: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/d1d, 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/d1d, 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: {}}