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":{}
      }
    }
    }
最后修改:2020 年 02 月 13 日
如果觉得我的文章对你有用,请随意赞赏