我要求父文档中有两个子文档。例如,索引的文档看起来像这样,
{
"id":123,
"name":"nithin",
"_childDocuments_":[
{
"id":"22"
"place":"blr",
"parent_id":123,
"street":"inagar"
},
{
"id":"23"
"place":"tvm",
"parent_id":123,
"street":"bakery"
}
]
}
这里的名字 - nithin有两个不同的地方和街道的儿童文件。我的要求是查询具有特定地点和/或街道的所有父母。 让我们说blr和面包店。如果我触发一个查询说(blr和面包店),它将不会返回任何结果。我不能使用blr或面包店,因为我想要一个父文档,其中儿童文档应该有blr和面包店。我如何实现这一目标?
答案 0 :(得分:0)
我认为实现目标的最佳方式是Block Join Parser功能。
您需要改变一点 - 是为父文档引入一些标记。在Solr词汇表中,“父过滤器”将需要它。因此,假设每个父文档都有content_type:parentDocument
(仅为了示例),您将能够使用BJQ(块连接查询)查找所有父文档,如:
{!parent which="content_type:parentDocument"}(+place:blr +street:bakery)
请记住,您需要将您的父子文档索引在一起(在同一个区块中),如Solr wiki所述(但我认为您已经这样做了,我想这应该是好的)