本文共 1824 字,大约阅读时间需要 6 分钟。
1、query String search
搜索所有的商品
GET /ecommerce/product/_search
效果
"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": {} }}
效果
查找商品名称中包含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
高亮显示
转载地址:http://mvft.baihongyu.com/