1

我正在浏览 Yonik 的博客。我正在使用 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)如果我为颜色:红色和大小:LI 设置过滤器,则仅获取子文档。是否有可能获得响应的父字段(因为我有多个颜色:红色和大小:L 的产品)。

2)如果我搜索颜色:红色和数量大于 0,我会得到多个文档,而此搜索只是为了检查红色项目是否可用。虽然 group by 是一种解决方法,但还有其他方法吗?

4

2 回答 2

4

如果你想parent documentschild 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 :)

于 2015-10-16T14:04:29.103 回答
0

我认为 Solr 的块连接解析器将为您提供所需的:

块连接

于 2015-09-16T09:51:56.900 回答