我有以下亲子模型
父母:
public class DataSet {
@Field
private String id;
@Field
private String type="type_dataset";
@Field
private String name;
@Field
private String dataSourceId;
@Field
private String serviceId;
@Field(child=true)
private List<DataSetColumn> columns;
}
孩子:
public class DataSetColumn {
@Field
private String id;
@Field
private String name;
@Field
private String type="type_column";
}
我可以查询由属于父级的字段过滤的父级文档,
http://solrserver:8886/solr/BeanTest10/select?q=*:*&fq=(type:type_dataset)&fl=*,[child
parentFilter=type:type_dataset]&wt=json&indent=true
现在我要:
我该如何实现?
答案 0 :(得分:1)
是的,借助BlockJoinParentQueryParser的强大功能,您可以实现类似的目的。
基本语法如下-q={!parent which=<allParents>}<someChildren>
在您的情况下,可以将其转换为-+{!parent which="type:type_dataset"}name:random* +service_id:1
返回子文档的技巧是相同的(child doc transformer):
fl=data_id,[child parentFilter=type:type_dataset]
如果需要,您也可以通过fl
构造来限制子字段。