我有一个相当复杂的聚合,它的复杂性是由于缺少 has_parent 聚合造成的。既然如此,它是使用 groovy 实现的。我唯一的问题是过滤聚合中计算的文档。
聚合看起来像这样:https ://gist.github.com/serj-p/c4fcc9810b3b627de294 这个聚合的目的是建立顶级大学联系人毕业。联系人文档具有子文档,即 Facebook 个人资料。最后一个有代表大学的嵌套字段,这就是我访问 _source 字段的原因。
正如您可能看到的,我在开始时执行过滤:
{
"match_phrase_prefix": {
"organizations.name": "stan"
}
}
排除没有相关文档的联系人。“organizations.name”被分析为
{
"filter": [
"lowercase",
"standard",
"trim",
"asciifolding",
],
"type": "custom",
"tokenizer": "standard"
}
正在以相同的方式分析用于过滤此字段的 appleid 文本。我发现很难在脚本内对字段值和过滤文本进行相同的处理,以过滤特定的嵌套文档。这就是为什么我正在寻找一些从脚本访问 ES API 的可能性。
提前感谢您的任何建议