select(排序,分页,高亮,模糊查询,精准查询)
1.普通查询
查询的参数体使用json
GET 索引名/_search
{
"query": {
"match": {
"name":"艾琳"
}
}
}
hits:ES查询出来的对象,包括索引,文档,查询出来的总数,权重比,查询详情,
_score:可以判断查询出来的数据谁最符合结果。
2 结果过滤
"_source": "{field}"
只查出字段为“name”和“age”的数据
3 排序
"order":"desc"降序
"order":"asc"升序
"sort": [
{
"FIELD": {
"order": "desc"
}
}
]
4 分页
两个参数:from 从第几个数据开始;size 返回多少条数据
从index为0开始,每一页为1个
"from": 0,
"size": 1
5 布尔查询
多条件精确查询
must :类比于and,要全匹配
should :类比于OR,符合其中一个即可
must_not 不等于
6 过滤器
range:范围;gte:大于等于;lte:小于等于;gt:大于;lt:小于;eq:等于
"filter": [
{"range": {
"age": {
"gte": 10,
"lte": 20
}
}}
]
7 精确查询
term :精确查询,通过倒排索引查询的。
match :通过分词器分词查询 ,text类型可以被分词,keyword类型不能被分词。
GET test1/_search
{
"query": {
"term": {
"age": 18
}
}
}
8 精确多查询
9 高亮查询
"highlight": {
"fields": {
"name": {}
}
}
自定义高亮样式
"pre_tags": "<p class='key' style='color:red'>", 前缀
"post_tags": "</p>", 后缀