我的用例是:我有一个父级->子级-> GrandChildren层次结构。
我想以嵌套方式获取文档,并希望进行BlockJoin查询以检索特定父母的所有孙子女,特定父母的所有子女等等。
我已经在架构中定义了适当的字段(使用curl),并根据我的应用程序的要求复制了字段和字段类型。我还定义了“文本”作为所有内容的复制字段,因为我必须支持随机搜索。
我已定义要提取的文档,如下所示:
{
"id": "3443",
"path": "1.employee",
"employeeId": 3443,
"employeeName": "Tom",
"employeeCounty": "Maricopa",
"_childDocuments_": [{
"id": "3443.54545454",
"path": "2.employee.assets",
"assetId": 54545454,
"assetName": "Lenovo",
"assetType": "Laptop",
"_childDocuments_": [{
"id": "3443.54545454.5764646",
"path": "3.employee.assets.assetType",
"processorId": 5764646,
"processorType": "Intel core i7"
}]
}]
}
现在,当我使用管理界面进行查询时,我得到了以下扁平化的对象,并且块联接查询也不起作用:
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"*:*",
"_":"1533252181415"}},
"response":{"numFound":1,"start":0,"docs":[
{
"id":"3443",
"employeeId":3443,
"text":["3443",
"Tom",
"Maricopa"],
"employeeName":"Tom",
"employeeCounty":"Maricopa",
"_childDocuments_.id":[3443.54545454,
3443.643534544],
"_childDocuments_.path":["2.employee.assets],
"_childDocuments_.assetId":[54545454,
643534544],
"_childDocuments_.assetName":["Lenovo"],
我想念什么?我该如何使Solr像对待嵌套文档那样处理嵌套文档,而不是将其展平?
感谢您的帮助。
答案 0 :(得分:1)
找到了解决方案。我使用了错误的URL发布。
我正在使用http://localhost:8983/solr/my-core/update/json/docs
相反,我应该只使用http://localhost:8983/solr/my-core/update
因为我已经将文档格式化为Solr格式,所以Solr无需进行任何特殊处理即可将其编入索引。