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":{}
}
}
}