gpt4 book ai didi

Elasticsearch 嵌套重要术语聚合与背景过滤器

转载 作者:行者123 更新时间:2023-11-29 02:56:51 25 4
gpt4 key购买 nike

我很难将背景过滤器应用于嵌套的重要术语聚合,bg_count 始终为 0。

我正在为具有 ID 和时间戳的文章 View 编制索引,并且在单个索引上有多个应用程序。我希望前景和背景设置与同一个应用程序相关,因此我尝试在 boo 查询和背景过滤器中的 app_id 字段上应用术语过滤器。 article_views 是一个嵌套对象,因为我还希望能够使用 timestamp 上的范围过滤器查询 View ,但我还没有做到这一点。

映射:

    {
"article_views": {
"type": "nested",
"properties": {
"id": {
"type": "string",
"index": "not_analyzed"
},
"timestamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
}
}
},
"app_id": {
"type": "string",
"index": "not_analyzed"
}
}

查询:

  {
"aggregations": {
"articles": {
"nested": {
"path": "article_views"
},
"aggs": {
"articles": {
"significant_terms": {
"field": "article_views.id",
"size": 5,
"background_filter": {
"term": {
"app_id": "17"
}
}
}
}
}
}
},
"query": {
"bool": {
"must": [
{
"term": {
"app_id": "17"
}
},
{
"nested": {
"path": "article_views",
"query": {
"terms": {
"article_views.id": [
"1",
"2"
]
}
}
}
}
]
}
}
}

正如我所说,在我的结果中,bg_count 始终为 0,这让我很担心。如果重要术语位于未嵌套的其他字段上,则 background_filter 可以正常工作。

Elasticsearch 版本为 2.2。

谢谢

最佳答案

您似乎正在点击 following issue在您的后台过滤器中,您需要“返回”到父上下文,以便根据父文档的字段定义您的后台过滤器。

此时您需要一个 reverse_nested 查询,但它不存在。

避免这种情况的一种方法是将 app_id 字段添加到您的嵌套文档中,这样您就可以在后台过滤器上下文中简单地使用它。

关于Elasticsearch 嵌套重要术语聚合与背景过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41213620/

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