我需要做一個Solr的子查詢,這如果是在MySQL看起來像這樣:Solr的 - 子查詢
SELECT *
FROM solr_index
WHERE type = 'person' AND
city IN (SELECT name FROM solr_index WHERE name = 'London' AND type = 'city')
顯然Solr的加盟非常相似 - http://wiki.apache.org/solr/Join。但這些僅在Solr 4中可用。有什麼辦法可以在Solr 3.X中做到這一點?
理想情況下是一種兼容ComplexPhraseQueryParser的方式,Solr PHP Client或Solarium支持。
任何幫助,非常感謝。
UPDATE:
另一個例子是不相關的位置:
SELECT *
FROM solr_index
WHERE type = 'project' AND
tag IN (SELECT name FROM solr_index WHERE name = 'Elephant' AND type = 'tag')
可能會更好過尋找到地理/空間特徵,而不是位置信息基於字符串搜索。 http://wiki.apache.org/solr/SpatialSearch –
感謝您的答覆。我需要這種功能的幾個場景 - 不僅與位置有關。我已經添加了另一個示例來演示如何將它用於其他內容。 – noel
人們通常會非規範化(扁平化)他們的模式以便不必進行連接。你的情況不可能嗎? – jpountz