【发布时间】:2019-06-06 21:48:07
【问题描述】:
我需要获得一个独特的事物列表,其中包含一些附加的属性。到目前为止,这只是返回一个唯一的名称列表,但是如果我想包含聚合文档的 id,我该怎么办?
我正在使用带有 .search() 方法的 elasticsearch npm 模块
任何帮助将不胜感激。
params.body.aggs = {
uniqueCoolThings: {
terms: {
field: 'cool_thing.name.keyword'
}
}
}
这将返回 { key, doc_count } 我想要的 { key, id, doc_count } 的列表
这行得通!谢谢技术专家席德!
如果我的文档看起来像这样呢
{ cool_things: [{ name, id }, { name, id }] }
我如何找到我当前热门的人的 id。例如,这是工作查询。
params.body.aggs = {
uniqueCoolThings: {
terms: {
field: 'cool_things.name.keyword'
},
aggs: {
value: {
top_hits: {
size: 1,
_source: {
includes: ['cool_things.id']
}
}
}
}
}
}
}
然而这会返回
...hits._source: {
uniqueCoolThings: [
{
"id": 500
},
{
"id": 501
}
]
} ...
我想知道如何做一个 where 条件,以便它只返回与它当前所在的唯一 cool_things.name.keyword 匹配的 ID。
【问题讨论】:
标签: node.js elasticsearch elasticsearch-aggregation