目录
方法:get
url :http://localhost:9200/wenzhang/_search?q=name:蜡笔
介绍:q后面跟的是字段名,冒号后面是要搜索的关键字

方法:get
url:http://localhost:9200/wenzhang/_search
{"query":{"match":{"name":"蜡笔"}}}

全量查询:
{"query":{"match_all":{}}}
分页查询:
- {"query":
- {
- "match_all":{
-
- }
- },
- "from":0,
- "size":3
- }
from:游标起始位 size:查询量
控制显示字段:
- {"query":
- {
- "match_all":{
-
- }
- },
- "from":0,
- "size":3,
- "_source" : ["name"]
- }
排序:
- {"query":
- {
- "match_all":{}
- },
- "from":0,
- "size":3,
- "sort":{
- "age":{
- "order" : "desc"
- }
- }
- }
方法:get
url:http://localhost:9200/wenzhang/_search
- {
- "query":{
- "bool":{
- "must":[
- {
- "match":{
- "name":"蜡笔"
- }
- },
- {
- "match":{
- "age":6
- }
- }
- ]
- }
- }
- }

- {
- "query":{
- "bool":{
- "should":[
- {
- "match":{
- "name":"蜡笔"
- }
- },
- {
- "match":{
- "name":"海绵宝宝"
- }
- }
- ]
- }
- }
- }
这样海绵宝宝和蜡笔小新都被查出来了
- {
- "query":{
- "bool":{
- "must":[
- {
- "match":{
- "name":"蜡笔"
- }
- }
- ],
- "filter" : {
- "range" : {
- "age":{
- "gt":5
- }
- }
- }
- }
- }
- }
这个时候搜索的就是大于5岁的蜡笔小新,如果把上面的must改成should,那会把8岁的海绵宝宝也搜出来,可见should也作用到了filter上。
全文检索:match,上面我们查询都是用的这个关键字,但是有个特点,name字段写"蜡笔"和"蜡小笔"都能匹配到数据,原因是es在底层做了拆词,把每个字做了倒排索引,当我们查询的时候会把每个字都拆开全文检索匹配,这样就返回了所有数据。
这不是我们想要的结果,我们就想要蜡笔小新怎么办。有办法,完全匹配。
完全匹配:match_phrase,这样匹配到的都是以我们输入的name里的关键字做的匹配。
高亮显示:highlight,查询过程加入此关键字就可以把匹配到的值高亮显示。
- {
- "query":{
- "bool":{
- "must":[
- {
- "match_phrase":{
- "name":"蜡笔"
- }
- }
- ]
- }
- },
- "highlight":{
- "fields" : {
- "name":{}
- }
- }
- }

方法:get
url:http://localhost:9200/wenzhang/_search
- {
- "aggs" : {
- "age_group" : {
- "terms" : {
- "field" : "age"
- }
- }
- },
- "size" : 0
- }

aggs:聚合操作
age_group:自定义聚合名称
terms:聚合的具体操作,terms代表分组
size:查询结果不显示原始数据
- {
- "aggs" : {
- "age_avg" : {
- "avg" : {
- "field" : "age"
- }
- }
- },
- "size" : 0
- }

avg:平均聚合操作