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

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

{!join from=productIds to=productId}productType:"guide book" city:Jyväskylä

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

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

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

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

【问题讨论】:

    标签: join solr lucene


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2017-05-31
      • 2018-09-01
      • 2016-12-19
      • 2021-03-29
      相关资源
      最近更新 更多