字段在收集时崩溃
Field collapsing on collection
假设我有一个非常简单的索引。 Blog post
和 blog categories
。一个博客属于一个或 多个 个类别。
我想为每个类别查找最后 3 个帖子。我怎样才能做到这一点 ?我在这里 "Field collapsing" 读到了 https://www.elastic.co/guide/en/elasticsearch/guide/current/top-hits.html 但这个例子指的是一个标量场,我有一个集合。
文档可以是:
{ "title" : "My post",
"categories" : [{ "tech" => "Technology", "professional" => "Professional"]
},
{ "title" : "My secondo post",
"categories" : [{ "professional" => "Professional"]
},
您只能聚合值,不能聚合键,因此第一步是简化您的 categories
字段。
如果您可以将 categories
简单地索引为字符串列表(例如,您的类别 slugs 而不是 slug => slug_title 对),那么您可以使用 Terms Aggregation to show you all of the categories present in your result-set, and then a nested Top Hits Aggregation显示按日期排序的前三个帖子。
我相信 this example on the Top Hits Aggregation 页面正在做您想要的(前提是您可以将类别索引为字符串列表)。
假设我有一个非常简单的索引。 Blog post
和 blog categories
。一个博客属于一个或 多个 个类别。
我想为每个类别查找最后 3 个帖子。我怎样才能做到这一点 ?我在这里 "Field collapsing" 读到了 https://www.elastic.co/guide/en/elasticsearch/guide/current/top-hits.html 但这个例子指的是一个标量场,我有一个集合。
文档可以是:
{ "title" : "My post",
"categories" : [{ "tech" => "Technology", "professional" => "Professional"]
},
{ "title" : "My secondo post",
"categories" : [{ "professional" => "Professional"]
},
您只能聚合值,不能聚合键,因此第一步是简化您的 categories
字段。
如果您可以将 categories
简单地索引为字符串列表(例如,您的类别 slugs 而不是 slug => slug_title 对),那么您可以使用 Terms Aggregation to show you all of the categories present in your result-set, and then a nested Top Hits Aggregation显示按日期排序的前三个帖子。
我相信 this example on the Top Hits Aggregation 页面正在做您想要的(前提是您可以将类别索引为字符串列表)。