gpt4 book ai didi

elasticsearch - 在 ElasticSearch 中聚合不同值

转载 作者:行者123 更新时间:2023-12-02 09:28:18 25 4
gpt4 key购买 nike

我正在尝试获取 ElasticSearch 中的不同值及其数量。

这可以通过以下方式完成:

"distinct_publisher": {
"terms": {
"field": "publisher", "size": 0
}
}

我遇到的问题是它计算术语,但是如果发布者中有通过空格分隔的值,例如:《鸡狗》并且 5 个文档在发布者字段中具有此值,那么我得到 5 个鸡和 5 个狗:

"buckets" : [
{
"key" : "chicken",
"doc_count" : 5
},
{
"key" : "dog",
"doc_count" : 5
},
...
]

但我想得到结果:

"buckets" : [
{
"key" : "Chicken Dog",
"doc_count" : 5
}
]

最佳答案

您为各获得5个桶的原因是因为您的文档是analyzed在您对它们建立索引时。

这意味着elasticsearch做了一些小处理,将Chicken Dog转换为chickendog(小写,并在空间上标记)。您可以使用Analyze API来了解elasticsearch如何将给定的文本片段分析为可搜索的标记。 ,例如:

curl -XGET 'localhost:9200/_analyze?&text=Chicken+Dog'

为了聚合“原始”不同值,您需要利用 not_analyzed 映射,以便 Elasticsearch 不会进行常规处理。 This reference可能有帮助。您可能需要重新索引数据以应用 not_analyzed 映射以获得您想要的结果。

关于elasticsearch - 在 ElasticSearch 中聚合不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35636318/

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