gpt4 book ai didi

elasticsearch - Elasticsearch:如何查询或汇总多值字段计数

转载 作者:行者123 更新时间:2023-12-02 22:31:29 25 4
gpt4 key购买 nike

我必须索引电子邮件,每个电子邮件都有一个收件人列表,如下所示:

{
"To":[{"name":"John", "email":"john@gmail.com"}, {"name":"Jane", "email":"jane@yahoo.com"}],
"Body": "Blah blah blah"
}

我想搜索正文并对仅具有多个收件人的邮件执行汇总。我尝试使用 token_count 数据类型和 value_count 聚合,但似乎都不适用。有没有一种方法可以在多值计数器上定义过滤器?

最佳答案

实际上,我猜您的To字段是nested字段。如果您想将nameemail地址真正关联,我不明白为什么不应该这样。否则,它将只是名称列表和地址列表,而它们之间没有任何关联。

如果您的字段是nested,则其映射应为以下格式:

    "To": {
"type": "nested",
"include_in_parent": true,
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
}
}
}

然后查询以搜索一定数量的电子邮件地址:
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
],
"filter": {
"script": {
"script": {
"inline": "doc['To.name'].size() > counter",
"params": {
"counter": 1
}
}
}
}
}
}
}

即使该字段不是nested ,上述查询仍然适用。

关于elasticsearch - Elasticsearch:如何查询或汇总多值字段计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com