实现查询去重、分页
例如:实现依据qid去重,createTime排序
DSL:
GET /nb_luban_answer/_search
{
"query": {
"match": {
"status": 1
}
},
"sort": [
{
"createTime": {
"order": "desc"
}
}
],"aggs": {
"qid": {
"terms": {
"field": "qid",
"size": 10
},"aggs": {
"rated": {
"top_hits": {
"sort": [{
"createTime": {"order": "desc"}
}],
"size": 1
}
}
}
}
},
"size": 0,
"from": 0
}
执行的结果:
{
"_shards": {
"total": 4,
"failed": 0,
"successful": 4
},
"hits": {
"hits": [],
"total": 4,
"max_score": 0
},
"took": 4,
"timed_out": false,
"aggregations": {
"qid": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"rated": {
"hits": {
"hits": [
{

本文介绍了如何在Elasticsearch中实现查询结果的去重,并结合createTime进行排序。通过分享具体的DSL语句,展示了依据qid字段去重的实现方法,同时讨论了分页操作。参考Elasticsearch 5.x的字段折叠功能。
最低0.47元/天 解锁文章
7182

被折叠的 条评论
为什么被折叠?



