一、query string search
查询所有格式:GET /index/type/_search
query string search的由来,因为search参数都是以http请求的query string来附带的。
例:查询所有商品名带qiu的商品,并且按照价格降序排序
GET /index/type/_search?q=name:qiu&sort=price:desc
如果报错,将price改为price.keyword,因为ElasticSearch中字段默认为text,text默认不能进行分析聚合操作,故改为keyword即可以分析聚合操作,详细介绍看
详细介绍
适用于临时的在命令行使用一些工具,比如curl,快速的发出请求,来检索想要的信息;但是如果查询请求很复杂,是很难去构建的。在生产环境中,几乎很少使用query string search
二、query DSL
DSL:Domain Specified Language,特定领域的语言
http request body:请求体,可以用json的格式来构建查询语法,比较方便,可以构建各种复杂的语法,比query string search强大很多。
例1,查询所有商品:
GET /shop/product/_search
{
"query":{
"match_all":{
}
}
}
例2,查询所有商品名带qiu的商品,并且按照价格降序排序:
GET /shop/product/_search
{
"qu