我有一个像这样的对象(这里简化),每个菌株都有很多染色体,有许多基因座,有很多特征,有很多产品,......在这里我只放了1个。
json中的结构是:
{
"name": "my strain",
"public": false,
"authorized_users": [1, 23, 51],
"chromosomes": [
{
"name": "C1",
"locus": [
{
"name": "locus1",
"features": [
{
"name": "feature1",
"products": [
{
"name": "product1"
//...
}
]
}
]
}
]
}
]
}
我想在Elasticsearch中添加这个对象,目前我已经分别添加了对象:locus,features和products。可以进行搜索(我想键入一个关键字,以locus名称,功能名称和产品名称进行观察),但我需要在每个子对象中复制public和authorized_users等数据。
我可以在elasticsearch中注册整个对象,只需搜索每个基因座级别,功能和产品吗?并单独获得它? (不返回Strain对象)
答案 0 :(得分:0)
是的,您可以在任何级别进行搜索(例如,使用“chromosomes.locus.name”之类的查询)。
但是,由于每个级别都有数组,因此您必须使用嵌套对象(和嵌套查询)来获得您想要的内容,这有点复杂:
对于你的上一个问题,不,你不能单独获得子对象,弹性返回整个json源对象。 如果只需要来自子对象的数据,则必须使用嵌套聚合。