gpt4 book ai didi

elasticsearch - ElasticSearch聚合-按计数分组而不分析字段

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

我们在索引中有一个字段类别,我们想使用聚合查询获取每个类别的记录数。

GET /_search
{
"aggs" : {
"genres" : {
"terms" : { "field" : "category" }
}
}
}

我们正在获得结果,但它是在分析类别后给出结果的。像这样
           {
"key": "chil",
"doc_count": 343503
},
{
"key": "child",
"doc_count": 343503
},
{
"key": "childr",
"doc_count": 343503
},
{
"key": "childre",
"doc_count": 343503
},

但我想要不分析的结果,希望有可能,有人可以帮助我进行查询。

预期
            {
"key": "children",
"doc_count": 343503
},
{
"key": "Category1",
"doc_count": 43503
},
{
"key": "Category2",
"doc_count": 60000
}

我们正在为映射中的字段categoryqu提供自动完成分析器
        "name": {
"type": "string",
"analyzer": "autocomplete",
"search_analyzer": "standard"
}

谢谢

最佳答案

尝试对.keyword进行聚合。但是从外观上看,您尚未在映射中指定关键字字段。

所以像这样调整您的映射:

{
"category":{
"type":"text",

"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
},

"name":{
"analyzer":"autocomplete",
"search_analyzer":"standard",
"type":"text"
}
}
}
}

并运行以下命令
GET /_search
{
"aggs":{
"genres":{
"terms":{
"field":"category.keyword"
}
}
}
}

注意:在 category上执行搜索将使用ES默认文本映射。使用 category.name将使用您指定的分析器和搜索分析器。在 category.keyword上进行搜索/聚合将对区分大小写的关键字执行操作-正是您所期望的。

关于elasticsearch - ElasticSearch聚合-按计数分组而不分析字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59948027/

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