如果字段相同,如何在ElasticSearch中获得不同的结果

时间:2015-06-04 01:03:05

标签: elasticsearch

我有一个ElasticSearch服务版本1.4,其索引是40M的数据记录。

我的数据具有相同的父字段。我想从同一个父母中提取1个独特的结果。

前:

{
    "id": "7835",
    "isbn": "3985",
    "parent_id": "7819",
},
{
    "id": "1835",
    "isbn": "4935",
    "parent_id": "7719",
},
{
    "id": "2835",
    "isbn": "9985",
    "parent_id": "7819",
}

我希望得到的预期结果是:

{
    "id": "7835",
    "isbn": "3985",
    "parent_id": "7819",
},
{
    "id": "1835",
    "isbn": "4935",
    "parent_id": "7719",
},

我检查了聚合: ElasticSearch - Return Unique Values

{
    "aggs" : {
    "parentId" : {
        "terms" : { "field" : "parent_id" }
}

然而我得到的反应 - 显示3个项目(所以最后一个没有被忽略),然后我在聚合响应中有关键字的术语桶,这对我来说似乎没用告诉我doc中每个键的出现次数,这不是所需的输出。

1 个答案:

答案 0 :(得分:0)

为了不搜索原始文档,您应该在聚合上方添加"size":0

您只能在parent_id响应字段中看到每个buckets的文档数量。

{
    "size" : 0,
    "aggs" : {
    "parentId" : {
        "terms" : { "field" : "parent_id" }
    }
}