聚合四大类:Bucketing(分桶),metric(给出document集合的某指标),matrix,pipeline
聚合是在query(无query,则为match-all)的全部结果下进行的,与from,size无关
{
"size": "0",
"aggs": {
"buck1": {
"terms": {
"field": "name"
},
"aggs": {
"buck3": {
"stats": {
"field": "age"
}
}
}
},
"buck2": {
"matrix_stats": {
"fields": ["age"]
}
}
}
}
match-all,match_none,match(and或or,给出的文本经过analyzer),match_phrase,
match_phrase_prefix(最后那个term允许前缀匹配,如quick brown f)
multi_match:允许多个field进行match query
common:类似match,但可通过cutoff_frequency区分高频term和低频term,可设置low_freq_operator,high_freq_operator
query_string:可支持default_field或fields(多个field),查询字符串可支持AND,OR,+,-等符号
simple_query_string:
term,terms,terms_set:类似terms,但minimum_should_match_field或minimum_should_match_script能指定最少匹配的term数量
range:如对某个field进行gte,lte等
exists:存在某个field的document,空字符串算存在的
prefix: 给的是term的前缀,term query给的是整个term
wildcard:给的是term的通配符形式
regexp,fuzzy(模糊匹配,可能错一两个字母),ids
constant_score:内含filter,可含boost
bool:must,should,must_not, filter(filter内也可以使用script)
dis_max:给出多个query,若document匹配多个query,取最高的那个score返回,tie_breaker:考虑非最高的score,0-1之间,加上非最高的score乘以tie_breaker
function_score:内含query,可含boost,修改原始score
script_score:内含query和script
boosting:含positive和negative两个query,negative query的score要乘以negative_boost
script:lang(默认painless),source或id,params
_field_names:含本document有值的field的名字,用于exists query
mappings内properties是普通域的定义,和properties平级的是元数据域,如_field_names