我正在尝试一个简单的例子,为带有嵌套子文档的文档创建模式。
{
"id" : "467eead3-7562-41fb-a406-3b4e62bdff9f",
"title": "my test ticket",
"participants": [
{
"id" : "487b5309-8f1e-4608-8e91-35cb10d27cac",
"name" : "jakub"
},
{
"id" : "6ddf6b8b-476a-4b7c-b1d6-75324fed3a55",
"name" : "kiran"
}
]
}
当我在Solr管理中将其输入到Solr模式设计器时,它会以许多不同的方式抱怨“missing root field”,然后是无效的字段“name”。
当我查阅关于索引嵌套子文档https://solr.apache.org/guide/8_0/indexing-nested-documents.html的官方文档并以它们为例时:
{
"id": "1",
"title": "Solr adds block join support",
"content_type": "parentDocument",
"_childDocuments_": [{
"id": "2",
"comments": "SolrCloud supports it too!"
}
]
}, {
"id": "3",
"title": "New Lucene and Solr release is out",
"content_type": "parentDocument",
"_childDocuments_": [{
"id": "4",
"comments": "Lots of new features"
}
]
}
模式设计者甚至不想处理这样的例子:
我不知道如何处理这个问题。我有一种感觉,我对整个概念的理解是错误的。我的问题是-当索引子文档时,方法是:
1.是否分别为父文档和子文档定义架构?
1.当索引这样的JSON文档时,子集合应该是什么样子?我是否传递子文档的ID?字段类型是否为“字符串”并标记为“多值”?
1.是否可以通过模式设计器工具定义嵌套的子文档?
1条答案
按热度按时间roqulrg31#
在最后解决了这个问题。你需要做的是扁平化你的模式。所以你的根文档需要包含子文档的字段,这样设计者才能正确地解析文档。
工作的JSON看起来像这样: