我最近更改了Solr 集群的架构,现在在嵌套结构中索引文档。我已将餐厅作为父级索引,并将其菜肴作为子级文档。BJQ(Block Join Query)父查询解析器可以方便地过滤出满足给定条件的孩子的所有父母 -
{!parent which=doc_type:restaurant}doc_type:dish AND dish_name:burger
所以上面的查询返回所有有汉堡作为菜肴之一的餐厅。我有一个用例,我想过滤掉所有同时有多个菜肴的餐厅,例如同时销售汉堡和薯条的餐厅。
{!parent which=doc_type:restaurant}doc_type:dish AND (dish_name:burger OR dish_name:fries)
上述查询将返回出售汉堡或薯条的餐厅。
过滤出同时使用 BJQ 销售的餐厅似乎很乏味。我该如何编写查询来实现这一点?