212
Elasticsearch中的重要查询
"query": {
"<查询类型>":{...}, #只允许使用系统规定的类型集合中的一种
"from": <Integer>, #偏移量
"size": <Integer>, #文档数量
"post_filter": {...} #应用于聚合结果上的filter
"aggs": {...} #聚合表达式
}
查询类型分为两大类:
1、叶子语句, 常见的有:
"match_all":{} (相当于 where 1)
"match":{"<field>":"<value>"} (相当于 like)
"multi_match": {"query": "<value>", "fields": ["<field1>", "<field2>", ...]} (相当于 field1 like pattern1 OR field2 like pattern1)
"range": {"<field1>": {"gte":<value1>, "lt":<value2>}} (相当于 between)
"term": {"<field>": "<value>"} (相当于 = )
"terms": {"<field1>": [<value1>, <value2>, ...]} (相当于 field in (value1, value2, ...) )
"exists": {"field": "<field>"} (相当于 IS NOT NULL )
"missing": {"field": "<field>"} (相当于 IS NULL )
2、复合语句,常见的有:
"bool": {"<组合类型1>":{...}, "<组合类型2>":{...}, ...}
#用于组合多个叶子查询语句。
bool的组合类型有must, must_not, should, filter等等。
"constant_score" #仅用来搭配单个filter使用,如:"constant_score": {"filter":{...}} 相当于 "bool": {"filter":{...}}