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":{}
    }
  }
}
Last modification:February 13th, 2020 at 03:43 pm
如果觉得我的文章对你有用,请随意赞赏