gpt4 book ai didi

elasticsearch - 可以在ElasticSearch查询中完成吗?

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

这可以在ElasticSearch查询中完成:

SELECT COUNT(DISTINCT users_contacts.value)
FROM users
INNER JOIN users_contacts ON users_contacts.user_id = users.id
WHERE users_contacts.type = "email"

没有 users_contacts.type = "email"条件,我可以使用ValueCount聚合。

最佳答案

是的,您可以使用top_hits聚合,如下面的文档链接所示

https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-aggregations-metrics-top-hits-aggregation.html

编辑

我尽力显示如何做到这一点。首先,我希望您将联系人保存在自己的文档中

1.创建映射

{
"dynamic": true,
"_all": {
"enabled": false
},
"properties":{
"user_id" : {
"type": "integer"
},
"contact_type" : {
"type":"string",
"index": "not_analyzed"
}
}
}

2.插入文档

使用它作为模板来创建多个文档(更改文本,数字和日期)
    {
"user_id": 5,
"contact_type": "email"
}

3.查询自身
{
"query": {
"term": {
"contact_type":{
"value":"email"
}
}
},
"aggs": {
"contact-counts": {
"terms": {
"field": "user_id"
}
}
}
}

4.查看结果

在其中搜索 聚合键和 联系人计数

它应该看起来像这样
"aggregations": {
"contact-counts": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 4, // user_id
"doc_count": 1 // document count
}
]
}
}

希望对您有所帮助! :)

编辑

最后,您不需要top_hits聚合,只需要简单的聚合即可:)

关于elasticsearch - 可以在ElasticSearch查询中完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39208330/

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