elasticsearch - 从elasticsearch查询动态分层数据
问题描述
我在 elasticsearch 中有一个索引,其中包含格式类似于以下的文档:
{id:base}
{id:a parent:base}
{id:b parent:a}
{id:c parent:a}
{id:d parent:someotherbase}
简而言之 - 每个文档都有一个 id 和一个父级,一个文档可以有多个“子级”并且只有一个父级。
我想检索这些文档(基于顶部的“基础”文档 ID)并将其转换为树结构,例如:
{id:base, children :[
{id:a , children:[{id:b},{id:c}]},
{...}
]}
有没有办法构建一个查询,只返回与单个“树”相关的文档(让我实现实际的树结构构建?
有没有办法使用本机弹性搜索支持快速构建这种结构?
解决方案
最好的办法是在存储到 elasticsearch 之前对数据进行非规范化处理。
IE。
{ node:base }
{ node:base/a}
{ node:base/a/b }
然后使用路径层次标记器。这将有助于查询文档。
推荐阅读
- php - 强制 Laravel 5.7 使用 HTTPS
- amazon-web-services - AWS VPC 和本地网络之间的 CIDR 重叠
- powershell - 在powershell中减去时间
- javascript - 映射元素中的 JSX 映射元素,相邻的 JSX 元素必须包含在封闭标记中
- linux - rlogin 到远程服务器后,如何始终自动运行命令?
- python - 有没有办法使用 Quickbooks Online API 获取所有销售和费用数据?
- python - 如何使用正则表达式验证字符串
- php - 从 Cpanel 迁移到 Plesk 后,一些 php 代码无法正常工作
- vue.js - App Engine 的 Vue PWA 未在自定义域上更新
- android - 如何在 Kotlin SharedPreferences 中添加新对象