我不知道如何使用以下结构映射搜索文档:
{
"_id": "007ff234cb2248",
"ids": {
"source1": "123",
"source2": "456",
"source3": "789"
}
"names": [
{"en":"Example"},
{"fr":"exemple"},
{"es":"ejemplo"},
{"de":"Beispiel"}
],
"children" : [
{
"ids": {
"source1": "CXXIII",
"source2": "CDLVI",
"source3": "DCCLXXXIX",
}
names: [
{"en":"Example Child"},
{"fr":"exemple enfant"},
{"es":"Ejemplo niño"},
{"de":"Beispiel Kindes"}
]
}
],
"relatives": {
// Typically no "ids" at this level.
"relation": 'uncle',
"children": [
{
"ids": {
"source1": "0x7B",
"source2": "0x1C8",
"source3": "0x315"
},
"names": [
{"en":"Example Cousin"},
{"fr":"exemple cousine"},
{"es":"Ejemplo primo"},
{"de":"Beispiel Cousin"}
]
}
]
}
}
child
对象可能会直接显示在children
部分中,或者在我的文档中进一步嵌套为uncle.children
(在本例中为堂兄弟)。 ID字段对于第一级(根),第二级(子级和叔叔)以及第三级(表兄弟)是通用的,命名结构对于第一级和第三级也是通用的。
我的用例是能够通过前缀和整个ID搜索ID(嵌套对象)。并且还能够在(尚未定义的)分析器规则集之后搜索子名称。
我无法找到以任何有用的方式映射这些内容的方法。我不相信我会对ids
和names
使用相同的技术取得很大的成功,因为名称和文档根目录之间存在额外的映射级别。
我甚至不确定是否可以映射。我至少在原则上认为ids
应该可以作为术语进行映射,如果我以某种方式将names
作为术语编入索引,也许。
我只是感到茫然,文档似乎没有涵盖任何类似复杂映射的内容。
我对文件的控制有限(读取:否),因为它来自CouchDB河,上游应用程序已经依赖于这种格式,所以我不能真正更改它。 / p>
我正在寻找能够通过以下伪条件进行搜索,所有伪条件都应匹配:
"123"
"CDL"
"Example"
,"Example Child"
标记化和分析的细节我可以为自己弄清楚,当我至少知道如何映射时
答案 0 :(得分:1)
如果从ID到其子项的映射是1对多,那么您可以将子项的名称存储在子字段中,因为字段可以有多个值。然后,每个文档都有一个 ID 字段,可能是关系字段,以及零个或多个子字段。