查询所有索引及其状态
host:port/_cat/indices?v&pretty
查询索引
host:port/index
条件查询
{
"query": {
## 全查询
"match_all": {
}
## 前缀查询
"match_phrase_prefix":{
"packages_name":"小熊美术年系统"
}
## 多字段查询
"multi_match": {
"query": "小美",
"fields": ["packages_name","username"],
"type":"phrase" //设置这个字段type未phrase时就相当于短语查询,phrase_prefix相当于最左前缀查询
}
## 中文分词
"match_phrase" :{
"packages_name" : "小熊"
}
}
}
排序查询
{
"query": {
"match_all": {}
},
"sort": [
{
"comment_count": {
"order": "desc"
}
}
]
}
分页查询
{
"query": {
"match_all": {
}
},
"sort": {
"comment_count": {
"order": "desc"
}
},
"from": 2,
"size": 2
}
ES的bool查询 (must、should)
must 必须符合条件( must_not 不符合是条件)
{
"query": {
"bool": {
"must": [
{
"match": {
"username": "小雪"
}
},{
"match": {
"packages_name": "小熊美术年系统课"
}
}
]
}
}
}
should 多条件符合一个即可
{
"query": {
"bool": {
"should": [
{
"match": {
"packages_name":"消息"
}
},{
"match": {
"username": "小雪"
}
}
]
}
}
}
filter(条件过滤查询,过滤条件的范围用range表示gt表示大于、lt表示小于、gte表示大于等于、lte表示小于等于)
{
"query": {
"bool": {
"must": [
{
"match": {
"packages_name": "小熊"
}
}
],
"filter": {
"range": {
"comment_count": {
"gte": 6,
"lt": 20
}
}
}
}
}
}
bool查询总结
must:与关系,相当于关系型数据库中的 and。
should:或关系,相当于关系型数据库中的 or。
must_not:非关系,相当于关系型数据库中的 not。
filter:过滤条件。
range:条件筛选范围。
gt:大于,相当于关系型数据库中的 >。
gte:大于等于,相当于关系型数据库中的 >=。
lt:小于,相当于关系型数据库中的 <。
lte:小于等于,相当于关系型数据库中的 <=。
ES之查询结果过滤
{
“query”: {
“match”: {
“username”: “小熊”
}
},
“_source”: [“username”,“packages_name”]
}
ES之查询结果高亮显示
{
"query": {
"match": {
"packages_name":"小熊"
}
},
"highlight":{
"fields":{
"username": {}
}
}
}
精确查询于模糊查询
term和match的区别是:
match是经过analyer的,也就是说,文档首先被分析器给处理了。根据不同的分析器,分析的结果也稍显不同,然后再根据分词结果进行匹配。 term则不经过分词,它是直接去倒排索引中查找了精确的值了。
{
"query": {
"term": {
"username": "小"
}
}
}
多条件
{
"query": {
"terms": {
"username": ["美","女"]
}
},
"_source": ["username"],
"from": 0,
"size": 20
}
#ES的聚合查询avg、max、min、sum
avg
{
"query": {
"match": {
"username": "美女"
}
},
"aggs": {
"my_avg": {
"avg": {
"field" : "comment_count"
}
}
},
"_source": ["username","comment_count"],
"from": 0,
"size": 20
}
max
{
"query": {
"match": {
"username": "美女"
}
},
"aggs": {
"my_max": {
"max": {
"field" : "comment_count"
}
}
},
"_source": ["username","comment_count"],
"from": 0,
"size": 20
}
sum
{
"query": {
"match": {
"username": "美女"
}
},
"aggs": {
"my_sum": {
"sum": {
"field" : "comment_count"
}
}
},
"_source": ["username","comment_count"],
"from": 0,
"size": 20
}
min
{
"query": {
"match": {
"username": "美女"
}
},
"aggs": {
"my_min": {
"min": {
"field" : "comment_count"
}
}
},
"_source": ["username","comment_count"],
"from": 0,
"size": 20
}