如何计算ES中所有文档中匹配的关键字数量

时间:2019-04-23 08:50:01

标签: elasticsearch

嗨,我在AWS托管服务中托管了弹性搜索文档,我想获取结果集中存在的关键字数量。即假设我的文档中的键中包含文本数据,而我正在搜索键X,Y,Z。它给我返回了N个文档。我怎么能得到,N个文档中X出现了多少次,Y出现了多少次,Z出现了多少次? 例如: 我有以下文档:

{
"id":1,
"date":"2019-04-24 12:10:05",
"text":"Hi I am from India and here for few days only",
"groupName":"India Toruist"
}

{
"id":2
"date":"2019-04-24 12:10:06",
"text":"Hi I am from Sri Lanka went to India in past and will stay here for 18 days only",
"groupName":"Sri Lanks Tourist"
}

现在我正在针对文本键搜索斯里兰卡和印度。它将返回文档1和2。我想知道印度发生了多少次,斯里兰卡发生了多少次。

1 个答案:

答案 0 :(得分:0)

您可以通过使用聚合来做到这一点。以下是可能对您有帮助的查询。

    {
    "size": "0",
    "aggs": {
        "docs_groupName_in": {
            "terms": {"field": "groupName.keyword","include" : ".*India.*"}
        },
"docs_groupName_sl": {
            "terms": {"field": "groupName.keyword","include" : ".*Sri Lanka.*"}
        }
    }
}

希望有帮助。