ElasticSearch分组方面

时间:2013-07-21 16:11:06

标签: elasticsearch facets

我的文件有这样的结构:

{
    id: 312256,
    name: "SomeName",
    filterBlocks: [{
            id: 0
            filterTypeId: 4
            filterItems: [
                1190
            ]
        }, {
            id: 0
            filterTypeId: 3
            filterItems: [
                353
            ]
        }, {
            id: 234
            filterTypeId: 1
            filterItems: [
                6342
            ]
        }
    ]
}

对于filterBlocks.id + filterBlocks.filterTypeId的每个不同组合,我在filterItems字段上需要N个大小的facet。我尝试使用如下查询:

{
    "query": {
        "match_all": {}
    },
    "facets": {
        "filterBlocks": {
            "terms": {
                "field": "filterBlocks.filterItems"
            }
        }
    }
}

但是我当然只得到N个方面而没有按filterBlocks.id + filterBlocks.filterTypeId进行分组

在我的查询或文档结构中需要修改哪些内容才能使其正确?感谢的

1 个答案:

答案 0 :(得分:0)

您需要首先查询以获取所有filterBlocks.id/filterBlocks.filterType组合,然后遍历结果以使用构面过滤器为每个组合构建构面搜索。

在第一个查询中使用术语构面可能是获得一组独特结果的好方法。