我一直在使用solr子/子文档索引/搜索,没有问题。现在我们面临着搜索深层嵌套(孙子、曾孙等)字段的需求。我在solr中的嵌套结构中对它们进行索引没有问题。但我无法在深嵌套字段中搜索字段。下面是我用于测试的一段数据。”sub2、sub3和sub4是嵌套路径。我正在使用Solr8.8.2(与solrj一起使用)。
[
{ "id": "1_1",
"hierarchy": 1,
"X1_11_str": "10001",
"X1_12_text": "ancester one",
"sub2": [
{ "id": "1_1_2_1",
"hierarchy": 2,
"X2_21_text": "child one",
"sub3": [
"id": "1_1_2_1_3_1",
"hierarchy": 3,
"X3_31_text": "grand one",
"sub4": [
{"id": "1_1_2_1_3_1_4_1",
"hierarchy": 4,
"X4_41_text": "great grand one",
"X4_42_int": 1,
"X4_43_str": "red"
},
{"id": "1_1_2_1_3_1_4_2",
"hierarchy": 4,
"X4_41_text": "great grand two",
"X4_42_int": 2,
"X4_43_str": "blue"
}
]
]
}
]
}
]
在根文档上,有“sub2”子文档。在sub2文档上有“sub3”子文档,sub3和sub4也是如此。我想搜索sub4文档字段,但返回根文档。以下是我的疑问:
{!父层次结构=1}“x4_42_int”:1和“x4_43_str”:“红色”
它返回带有“id”的根文档:“1\u 1”。这是正确的。
{!父层次结构=1}“x4_42_int”:1和“x4_43_str”:“蓝色”
它仍然返回带有“id”的根文档:“1_1”。
我理解这是因为我要求根文档作为结果。但这不是我所期望的。我想要一个不返回任何内容的查询,因为没有与搜索匹配的sub4文档。
有人能帮助您使用正确的查询语法吗?
谢谢
西蒙
暂无答案!
目前还没有任何答案,快来回答吧!