赞
踩
collapse
collapse
可以将搜索结果按照指定的 field
去重。如果在一次 DSL query
中,collapse
和 sort
同时存在时,DSL
的执行顺序是 select -> collapse -> sort
。
根据关键词搜索 spu_id
, 但文档是 SKU
,根据 SKU
的名称关键词搜索 spu_id
。一个 SPU
通常都有多个 SKU
,如果不对 spu_id
进行去重,那么 spu_id
将会有很多的重复。
DSL demo
{ "query": { "match": { "desc": "搜索" } }, "from": 0, "size": 4, "collapse": { "field": "spu_id" }, "_source": { "includes": [ "spu_id" ] } }
response
{ "took": 0, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 18, "relation": "eq" }, "max_score": null, "hits": [ { "_index": "xxx", "_type": "_doc", "_id": "xxx", "_score": 19.782768, "_routing": "xxx", "_source": { "spu_id": xxx }, "fields": { "spu_id": [ "xxx" ] } }, { "_index": "xxx", "_type": "_doc", "_id": "xxx", "_score": 18.0652, "_routing": "xxx", "_source": { "spu_id": xxx }, "fields": { "spu_id": [ "xxx" ] } } ] } }
优点:性能明显
缺点
分页查询时不知道去重后的 spu_id 的总数;
不能和 scroll 组合进行分页查询;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。