2015-05-28 48 views
1

我需要在Solr中運行包含另一個查詢作爲主查詢條款的查詢!如何將Solr子查詢simillar用於rdbms子查詢?

財產以後這樣的RDBMS中的SQL:

select name from movie 
where movie.writer in (
    select director from movie where producer = 'XXX' 
) 

有沒有辦法做到這一點是Solr的?

回答

0

是的,這是可能的。請看看這個link。此外,您使用的也是版本有差別,因爲它們是在Solr4.0

介紹
+0

感謝您的快速響應。我之前在Solr中檢查過「加入」,但我認爲這不能像子查詢那樣工作。我試過了(在Solr 5上)並且出錯了。我的字段(從和到)是字符串。 – Nazanin

+0

此外,我需要運行一個「查詢」來獲取內部列表(請注意示例「其中producer =」XXX「) – Nazanin

+0

感謝您的回答。我在您的幫助下找到了我的解決方案 – Nazanin

0

你可以嘗試過濾器,這樣的事情..

q=movie:name 
fq=(writer:writer_name AND producer:Producer_name) 

也是你放入Solr的數據指數是平坦的或非正規化的。 因此,請將suquery字段值放入查詢的AND部分並將其放入Solr。

q=(movie:name AND writer:Writer_name AND producer:Producer_name) 
+0

在示例中,我想要檢索他們的作者是「XXX」製作的電影導演的電影!一個簡單的「和」filrer不會導致這樣的列表。 – Nazanin

+0

我正在尋找一種實現我的查詢作爲單相查詢的方式,但是我用兩個階段的查詢實現了它(將內部查詢的結果放在主查詢中) – Nazanin

+0

我想知道你如何嘗試,結果如何?你有什麼文件結構? –

0

已解決。
這可以使用Solr中的「連接」。
以下是我的回答例如解決方案:

fl=name& 
q={!join from=writer to=director}+producer:XXX 

也可以添加過濾器查詢。此過濾器將影響連接和查詢的結果。
感謝Ramzy。