首页 Elastic 正文
212

Elasticsearch中的重要查询

  • yiqingpeng
  • 2019-03-13
  • 0
  •  
"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":{...}}

正在加载评论...