将联接与其他联接或常规查询组合在一起

时间:2016-02-23 13:26:28

标签: join solr lucene

我想将Solr连接查询与常规查询结合起来。举个例子,假设我想在Jyväskylä(芬兰)找到所有卖指南书的商店。如果商店的文档包含字段cityproductIds,并且产品文档在我的索引中包含字段productTypeproductId,我希望这样的内容可以使用:

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

我不确定这是多么有效率。