Join Solr-子查询

Join Solr-子查询,join,solr,subquery,Join,Solr,Subquery,我需要做一个Solr子查询,如果是在MySQL中,它会是这样的: SELECT * FROM solr_index WHERE type = 'person' AND city IN (SELECT name FROM solr_index WHERE name = 'London' AND type = 'city') 显然,Solr连接非常相似-。但这些似乎只在Solr4中可用。在Solr3.X中有什么方法可以做到这一点吗 理想情况下,这是一种与ComplexPhraseQueryPar

我需要做一个Solr子查询,如果是在MySQL中,它会是这样的:

SELECT *
FROM solr_index
WHERE type = 'person' AND 
city IN (SELECT name FROM solr_index WHERE name = 'London' AND type = 'city')
显然,Solr连接非常相似-。但这些似乎只在Solr4中可用。在Solr3.X中有什么方法可以做到这一点吗

理想情况下,这是一种与ComplexPhraseQueryParser兼容的方式,Solr PHP客户端或Solarium支持这种方式

非常感谢您的帮助

更新:

另一个与位置无关的示例:

SELECT *
FROM solr_index
WHERE type = 'project' AND 
tag IN (SELECT name FROM solr_index WHERE name = 'Elephant' AND type = 'tag')

我会尝试过滤器查询和方面的不同变体。比如:

q=*:*
fq=(type:city AND name:london)
facet=true
facet.query=type:person

希望这对您有所帮助,祝您好运。

自solr 3.4以来就有了加入。看看这个

试试这个

q=*:*&fq=city:london&fq=type:(city OR person)

最好是查看地理/空间特征,而不是基于字符串的位置信息搜索。谢谢你的回复。我需要在一些场景中使用此功能,而不仅仅是与位置相关。我添加了另一个示例来演示如何将其用于其他用途。人们通常将其模式非规范化(扁平化),以便不必进行连接。你的情况不可能吗?@pashgolpashgolian谢谢你的指点,修正了。显然Lucidworks已经更新了他们的博客,但还没有设置链接重定向。