如何在Elasticsearch中选择不同的孩子

时间:2018-12-06 14:44:14

标签: elasticsearch

获取此查询

    "query": {
                "bool": {
                    "filter": {
                        "has_parent": {
                            "parent_type": "profiles",
                            "query": {
                                "query_string": {
                                    "query": "age:>0 and user:aqwe"
                                }
                            }
                        }
                    }
                }
            },
            "sort": ["user", {"createdAt": "asc"}]

结果是多个项目具有相同的'_id',我认为这有点像联接问题。如何编辑此查询以选择不同的项目?

1 个答案:

答案 0 :(得分:0)

如果只想返回唯一值,则可以使用术语聚合。在您的情况下,它看起来像这样(在这种情况下,大小是您要返回的唯一ID的最大数量):

"query": {
    "bool": {
        "filter": {
            "has_parent": {
                "parent_type": "profiles",
                "query": {
                    "query_string": {
                        "query": "age:>0 and user:aqwe"
                    }
                }
            }
        }
    }
},
"aggs": {
    "unique": {
        "terms": {
            "field": "_id",
            "size": 100
        }
    }
}    
"sort": ["user", {"createdAt": "asc"}]