gpt4 book ai didi

php - 将ID IN(1、2,...)添加到 Elasticsearch 查询中,并按ID汇总计数

转载 作者:行者123 更新时间:2023-12-03 01:48:40 25 4
gpt4 key购买 nike

我有一个ES查询:

GET /myindex/_search
{
"query": {
"query_string" : {
"default_field" : "content",
"query" : "this AND that OR thus"
}
}
}

我想
  • 将结果限制为特定的user_id(过滤器?)
  • 汇总每个user_id的计数

  • 因此,类似的MySQL查询为 SELECT user_id, COUNT(*) WHERE user_id IN (1, 2, ...) AND (content LIKE '%this%' ...) GROUP BY user_id
  • _id不是我要分组和汇总计数的user_id,而是一个内部字段。

  • 如何在ElasticSearch中做到这一点?

    最佳答案

    您可以在terms字段上使用terms查询和另一个user_id聚合,如下所示:

    {
    "query": {
    "bool": {
    "must": {
    "query_string": {
    "default_field": "content",
    "query": "this AND that OR thus"
    }
    },
    "filter": {
    "terms": {
    "user_id": [
    1,
    2,
    3
    ]
    }
    }
    }
    },
    "aggs": {
    "by_user": {
    "terms": {
    "field": "user_id"
    }
    }
    }
    }

    关于php - 将ID IN(1、2,...)添加到 Elasticsearch 查询中,并按ID汇总计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42071485/

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