我正在经历Yonik的blog。 我正在使用solr 5.3.0,我有一个我想要解决的场景。 任何帮助将不胜感激。
概括Yonik的例子:
旧文件:
{
product_name : "Awesome T-Shirt",
category : "Clothing",
color : [ "Red", "Blue"],
size : [ "L", "M", "XL" ]
}
父:
{
product_name : "Awesome T-Shirt",
category : "Clothing",
}
嵌套儿童:
{
color : "Red",
size : "L",
quantity: 2
}
{
color : "Blue",
size : "M",
quantity: 3
}
{
color : "Blue",
size : "L",
quantity: 0
}
{
color : "Red",
size : "L",
quantity: 0
}
{
color : "Red",
size : "XL",
quantity: 1
}
计算一些场景: 1)如果我把颜色过滤器:红色和尺寸:L我只得到儿童文件。是否可以在响应中获取父字段(因为我有多个颜色的产品:红色和大小:L)。
2)如果我搜索颜色:红色和数量大于0,我会得到多个文件,而这个搜索只是为了检查红色项目是否可用。虽然分组是一种解决方法,但还有其他方法。
答案 0 :(得分:4)
如果您想parent documents
child documents
,请执行此操作:
/select?q=id:<parent id>
&fq=type:<parent type>
&fl=*,[child parentFilter="type:<parent type>" limit=10]
它会返回这样的结构:
{
"type":"<parent type>",
....
"_childDocuments_":[{
<doc>..</doc>
...
<doc>..</doc>
}]
}
子文档计数受limit=10
限制,您当然可以更改,但默认值为10 :)
答案 1 :(得分:0)
我认为Solr的块连接解析器可以满足您的需求: