Elasticsearch 多种搜索方式

1、query String search

 

搜索所有的商品

 

GET /ecommerce/product/_search

 

效果

 

Elasticsearch 多种搜索方式_第1张图片

 

 

"took": 288 (耗费的毫秒

 

"timed_out": false(是否请求超时

 

_shards": {

    "total": 5,

    "successful": 5,

    "skipped": 0,

    "failed": 0

  }(查找分区的情况)


  "hits": {

    "total": 3,

    "max_score": 1,

    "hits": [

      {

        "_index": "ecommerce",

        "_type": "product",

        "_id": "2",

        "_score": 1,

        "_source": {

          "name": "jiajieshiyagao",

          "desc": "yaoxiaofangzhu",

          "price": "25",

          "producer": "jiajieshi producer",

          "tags": [

            "fangzhu"

          ]

        }

      }

查询数量的情况

 

查找商品名称中包含yagao的商品,而且按照售价降序排序

 

GET /ecommerce/product/_search?q=name:yagao&sort=price:desc

 

2、query DSL

 

DSL:Domain specifild language(特定领域的语言)

 

http request body:请求体,可以用json的格式构建查询语句,比较方便,可以构建各种复杂的查询语句,比query string search强大。


 

GET /ecommerce/product/_search

{

  "query": {

    "match_all": {}

  }

}

效果

 

Elasticsearch 多种搜索方式_第2张图片

 

查找商品名称中包含yagao的商品,而且按照售价降序排序


 

GET /ecommerce/product/_search

{

  "query": {

    "match": {

      "name": "yagao"

    }

  },

  "sort": [

    {

      "price": "desc"

    }

  ]

  

}


分页查询商品


GET /ecommerce/product/_search

{

  "query": {"match_all": {}},

  "from": 1,

  "size": 2

}

查询商品名称和价格


 

GET /ecommerce/product/_search

{

  "query": {"match_all": {}},

  "_source": ["name","price"]

}

3、query filter

 

对数据进行过滤

 

搜索名称 包含yagao,而且售价大于25


 

GET /ecommerce/product/_search

{

  "query": {

    "bool": {

      "must":

        {

          "match": {

            "name": "yagao"

          }

        },

      "filter": {

        "range": {

          "price": {

            "gt": 25

          }

        }

      }

    }

  }

}

4、full-text search

 

全文检索


 

GET /ecommerce/product/_search

{

  "query": {

    "match": {

      "producer": "yagao producer"

    }

  }

}

 

使用到了倒排索引

 

 

5、phrase search

 

短语搜索(和全文检索相对)

 

全文检索会将输入的字段拆开,去倒排索引里面查询,如果匹配任意一个字符便可以作为结果返回。

 

phrase search:要求输入的搜索串必须在在指定的字段文本中包含一模一样的。

 

6、hightlight search

 

高亮显示


 

你可能感兴趣的:(Elasticseach)