将连接与其他连接或常规查询相结合
Posted
技术标签:
【中文标题】将连接与其他连接或常规查询相结合【英文标题】:Combining joins with other joins or regular queries 【发布时间】:2016-02-23 13:26:27 【问题描述】:我想将 Solr 连接查询与常规查询结合起来。例如,假设我想查找于韦斯屈莱(芬兰)销售指南书的所有商店。如果商店的文档在我的索引中有 city
和 productIds
字段,并且产品的文档在我的索引中有 productType
和 productId
字段,我希望这样的事情可以工作:
!join from=productIds to=productIdproductType:"guide book" city:Jyväskylä
但是,连接查询是LocalParams 的一种特殊类型,它们对整个查询都有效。因此,此查询将选择具有productType=guide book
和city=Jyväskylä
的文档,这没有任何意义。
更糟糕的是,假设我想寻找销售指南书且位于人口超过 1000 人的城市的商店。我需要两个连接(选择产品和城市)。
当然,我可以将其拆分为查询 (q
) 和过滤查询 (fq
),但这将我限制为两种查询(因此,一种常规查询和一种连接查询或两种joins),更重要的是滥用了查询和过滤查询的概念。
因此,我的问题是:如何结合常规查询和联接查询以及如何进行多个联接查询?
【问题讨论】:
【参考方案1】:我想我明白了:可以有多个过滤器查询,每个都可以有自己的join
子句。 Solr 的管理界面不允许您在 fq
字段中输入多个查询,但可以通过“原始查询参数”字段。
不过,我不确定这有多有效。
【讨论】:
以上是关于将连接与其他连接或常规查询相结合的主要内容,如果未能解决你的问题,请参考以下文章