Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

1.query string search

      GET /ecommerce/product/_search

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

took:耗费了几毫秒

timeout:是否超时

_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个relica shard也可以)

hist.total:查询结果的数量,4个total

max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也越高

hits.hits:包含了匹配搜索的document的详细数据


搜索商品名称中包含yagao的商品,而且按照售价降序排序:GET /ecommerce/product/_search?q=name:yagao&sort=price:desc

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

适用于临时的在命令行使用一些工具,比如curl,快读的发出请求,来检索想要的信息。但是如果查询请求很复杂,是很难去构建的,在生产环境中,几乎很少使用query string search


2.query DSL

     DSL:  Domain Specified  Language  特定领域的语言

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

查询所有商品

GET /ecommerce/product/_search

{

      “query”:{“match_all”:{}}

}

查询名称包含yagao 的商品,同时按照价格降序排序

GET /ecommerce/product/_search

{

     “query”:{

            “match”:{

                   “name”:”yagao”

            }

      },

      “sort”:[

              {“price”:”desc”}

       ]

}

分页查询商品,总共3条商品,假设每页就显示1条商品, 现在显示第二页,所以就查出第二个商品

GET /ecommerce/product/_search

{

       “query”:{“match_all”:{}},

       “from”:1,

       “size”:2

}

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

指定要查询出来商品的名称和价格

GET /ecommerce/product/_search

{

     “query”:{“match_all”:{}},

     “_source”:[“name”,”price”]

}

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

3.query filter(对数据进行过滤)

搜索商品名称包含yagao,而且售价大于25元的商品

GET /ecommerce/product/_search

{

     “query”:{

             “bool”:{

                    “must”:[

                           {“match”:{“name”:”yagao”}}

                     ]

             },

             “filter”:{

                    “range”:{

                             “price”:{

                                    “gt”:25

                              }

                      }

              }

     }

}

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

4.full-test search(全文检索)

GET /ecommerce/product/_search

{

      “query”:{

             “match”:{

                   “product”:”yagao producer”

             }

       }

}

Elasticsearch 顶尖高手(4)--快速入门案例实战:多种搜索方式(二)

上一篇:es界面的查询命令


下一篇:java-day25