query DSL
DSL: Domain Specified language 特定领域的语言
查询所有商品
GET /ecommerce/_search { "query": {"match_all": {}} }
查询名称包含yagao的所有商品,带排序,分页
sort:排序、from:开始页、size页数
GET /ecommerce/_search { "query": { "match": { "name": "yagao" } }, "sort": [ { "price": { "order": "desc" } } ], "from": 0, "size": 5 }
制定查询出来的字段,只查看name、desc
GET /ecommerce/_search { "query": { "match_all": {} }, "_source": ["name","desc"] }
query filter
查询商品名称,包含yagao,而且价格price大于25
"gte": 25 大于等于25 gt 大于
"lte": 25 小于等于 lt 小于GET /ecommerce/_search { "query": { "bool": { "must": [ { "match": { "name": "yagao" } } ], "filter": { "range": { "price": { "gte": 25 } } } } } }
全文检索 full-text search
全文检索会将输入的搜索串拆解开来,去倒排索引,然后去倒排索引里面去一一匹配,只要匹配上任意一个拆解的单词,就可以作为结果返回
GET /ecommerce/_search { "query": { "match": { "producer": "yagao producer" } } }
短语搜索
要求输入的搜索串必须在指定的字段文本中,完全包含一模一样的,才算匹配,才能作为结果返回
GET /ecommerce/_search { "query": { "match_phrase": { "producer": "yagao producer" } } }
高亮
GET /ecommerce/_search { "query": { "match": { "producer": "producer" } }, "highlight": { "fields": { "producer":{} } } }