1、条件查询
匹配查询
{"query": {"match": {"category": "小米"}}
}
查询全部
{"query": {"match_all": {}}
}
2、分页查询
查询第二页的数据,并且只获取title字段。
{"query": {"match_all": {},"from": 2,"size": 2,"_source": ["title"]}
}
3、查询排序
{"query": {"match_all": {},"from": 2,"size": 2,"_source": ["title"],"sort": {"price": {"order": "desc"}}}
}
4、多条件查询
4.1 must 两个条件同时成立
{"query": {"bool": {"must": [{"match": {"category": "小米"}},{"match": {"price": "1999"}}]}}
}
4.2 should 查询符合两个条件的数据
{"query": {"bool": {"should": [{"match": {"category": "小米"}},{"match": {"category": "华为"}}]}}
}
5、filter 范围查询
大于5000的数据查询
{"query": {"bool": {"should": [{"match": {"category": "小米"}},{"match": {"category": "华为"}}],"filter": {"range": {"price": {"gt": 5000}}}}}
}
6、match、match_phrase 检索方式
match全文检索匹配
当保存文档数据时,es会将数据文字进行进行分词、拆解操作,并将拆解后的数据保存到倒排索引当中,因此即使使用数据的一部分也可以查询到数据,这种检索方式称为全文检索。
案例:小华,将会被拆解为小、华,符合条件的都可查询出来。
{"query": {"match": {"category": "小华"}}
}
match_phrase完全匹配
案例:则匹配小华。
{"query": {"match_phrase": {"category": "小华"}}
}
7、高亮查询
对查询结果当中的category字段高亮显示。
{"query": {"match_phrase": {"category": "小米"}},"highlight": {"fields": {"category": {}}}
}
8、 聚合查询
按照价格分组,并且只获取统计结果
{"aggs": { // 聚合操作"price_group": { // 名称,随意起名"terms": { // 分组"field": "price" // 分组字段}}},"size": 0 // 没有原始数据了,只有统计结果
}
不分组,统计价格平均值
{"aggs": {"price_avg": {"avg": { // 平均值"field": "price"}}},"size": 0
}
9、映射关系
创建索引:
text分词
keyword关键字需完全匹配
index索引:true可被索引,false不可被索引
{"properties": {"name": {"type": "text","index": true},"sex": {"type": "keyword","index": true},"tel": {"type": "text","index": false}}
}