search - 如何在 SOLR 中正确查询父子文档?
问题描述
索引结构:
{
"documents": [
{
"doc_type": [
"dataset"
],
"title": [
"document_title"
],
"id": [
1234
],
"_childDocuments_": [
{
"parent_id": [
1234
],
"doc_type": [
"column"
],
"id": [
789
],
"attr_nm": [
"child_field_value"
],
},
]
}
]
}
每当执行搜索/查询时,我总是想返回父文档。例如,如果我搜索“child_field_value”,我想获取父文档广告,用户永远不会看到子文档。
我可以让这个为父母工作。例如,如果我搜索“document_title”,我可以使用以下设置获得上述结构:
q=document_title
fl=*,[child parentFilter=doc_type:dataset]
qf=title^200 attr_nm
如果我使用查询关键字“child_field_value”尝试此操作,我会得到一个奇怪的结构,例如:
"response": {
"numFound":2,
"start":0,
"docs":[
{
"parent_id":"1234",
"doc_type":"column",
"id":"123",
"attr_nm":"child_field_value",
},
{
"parent_id":"1234",
"doc_type":"column",
"id":"456",
"attr_nm":"child_field_value",
"_childDocuments_":[{
"parent_id":"1234",
"doc_type":"column",
"id":"124",
"attr_nm":"child_field_value",
}]
}
]
}
即使在子字段中搜索任何值,如何确保始终获得所需的结果?
解决方案
推荐阅读
- wpf - WinForms/WPF 控件的全局唯一标识符?
- web3 - 使用 Web3 读取 LP 池的余额
- anaconda - Pytorch 在 conda 上安装失败,错误为 -CondaHTTPError: HTTP 403 FORBIDDEN for url
- excel - 使用自动过滤器删除行时面临问题
- ruby - 有没有更有效的方法来使用 Ruby 控制控制台光标(马车位置等)?
- elasticsearch - 如何在elasticsearch中索引csv文档?
- ios - SwiftUI - 如何从不同的视图中获取 GeometryReader 的大小/高度?
- swift - SwiftUI 视图到 AppKit 中的 NSImage
- php - 如何从数据库中显示有关性别用户的信息?
- tensorflow - Keras 模型给出了巨大的负值并且模型根本没有训练