将连接与其他连接或常规查询相结合

Posted

技术标签:

【中文标题】将连接与其他连接或常规查询相结合【英文标题】:Combining joins with other joins or regular queries 【发布时间】:2016-02-23 13:26:27 【问题描述】:

我想将 Solr 连接查询与常规查询结合起来。例如,假设我想查找于韦斯屈莱(芬兰)销售指南书的所有商店。如果商店的文档在我的索引中有 cityproductIds 字段,并且产品的文档在我的索引中有 productTypeproductId 字段,我希望这样的事情可以工作:

!join from=productIds to=productIdproductType:"guide book" city:Jyväskylä

但是,连接查询是LocalParams 的一种特殊类型,它们对整个查询都有效。因此,此查询将选择具有productType=guide bookcity=Jyväskylä 的文档,这没有任何意义。

更糟糕的是,假设我想寻找销售指南书且位于人口超过 1000 人的城市的商店。我需要两个连接(选择产品和城市)。

当然,我可以将其拆分为查询 (q) 和过滤查询 (fq),但这将我限制为两种查询(因此,一种常规查询和一种连接查询或两种joins),更重要的是滥用了查询和过滤查询的概念。

因此,我的问题是:如何结合常规查询和联接查询以及如何进行多个联接查询?

【问题讨论】:

【参考方案1】:

我想我明白了:可以有多个过滤器查询,每个都可以有自己的join 子句。 Solr 的管理界面不允许您在 fq 字段中输入多个查询,但可以通过“原始查询参数”字段。

不过,我不确定这有多有效。

【讨论】:

以上是关于将连接与其他连接或常规查询相结合的主要内容,如果未能解决你的问题,请参考以下文章

外连接查询

将多个功能与 svm 相​​结合

将 SQL Server 图形数据库中的 MATCH 子句和 INNER JOIN 与混合模型相结合

是否可以将 MySQL Proxy 与 H2 连接?

多个连接的 HiveQL 查询

sql如何将一个表与另外一张表相关联