match_all:匹配所有
match:分词单个匹配 【分词包含query,就可以被检索到,类似contains包含】
multi_match:分词多个匹配 【任何一个分词包含query,就可以被检索到】
term:全词单个匹配
terms:全词多个匹配
bool:组合查询
range:范围查询
aggs:聚合查询
query可以理解为SQL里面的where
可以通过以下两种方式查询所有数据
下面两种查询完全等价
POST 索引/_search
{
"query": {
"match_all": {}
}
}
GET 索引/_search
POST 索引/_search
{
"query": {
"match": {
"name": "收藏"
}
}
}
POST 索引/_search
{
"query": {
"multi_match": {
"query": "test",
"fields": ["name", "tag"]
}
}
}
单个匹配
GET /索引/_search
{
"query": {
"term": {
"id" : 1229
}
}
}
多个匹配
GET /索引/_search
{
"query": {
"terms": {
"id" : [1229, 2338]
}
}
}
只返回_source指定的字段
GET /索引/_search
{
"query": {
"match_all": {}
}
, "_source": ["id", "name"]
}
"excludes”:指定排除字段
“Includes”:指定查询字段
GET /索引/_search
{
"query": {
"match_all": {}
},
"_source": {
"excludes": ["id", "name"]
}
}
Bool 前置条件字段
Must ==
must_not !=
should or
GET /索引/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"price" : 29
}
},
{
"match": {
"name" : "3.9收藏test"
}
}
]
}
}
}
Range 潜质查询条件
Gt >
Gte >=
Lt <
lte <=
GET /索引/_search
{
"query": {
"range": {
"price": {
"gte": 10,
"lte": 20
}
}
}
}
[fuzziness]编辑距离是将一个术语转换为另一个术语所需的一个字符更改的次数。 这些更改可以包括:
GET /索引/_search
{
"query": {
"fuzzy": {
"name": {
"value": "藏收",
"fuzziness": 2
}
}
}
}
sort 前置字段
Desc 降序
asc 生序
GET /索引/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"price": {
"order": "desc"
}
},
{
"age": {
"order": "desc"
}
}
]
}
GET /索引/_search
{
"query": {
"match_all": {}
},
"from": 0,
"size": 2
}
stats聚合,对某个字段一次性返回count,max,min,avg和sum五个指标
GET /索引/_search
{
"aggs": {
"state_aggs": {
"stats": {
"field": "price"
}
}
}
}
结果:
{
…,
“aggregations” : {
“stats_aggs” : {
“count” : 5,
“min” : 2.0,
“max” : 5.0,
“avg” : 3.4,
“sum” : 17.0
}
}
}
示例:
Size 表示输出多少个
GET /索引/_search
{
"query": {
"term": {
"name": {
"value": "test"
}
}
},
"sort": [
{
"price": {
"order": "desc"
}
}
],
"aggs": {
"group": {
"terms": {
"field": "price",
"order": {
"_count": "desc"
},
"size": 10
}
}
}
}