在SQL中,我有这样的查询
SELECT * FROM table1 INNER JOIN table2 ON table1.table1To2Id = table2.table2Id INNER JOIN table3 ON table1.table1To3Id = table3.table3Id
如何使用Solr进行相同的查询?鉴于SQL中的字段与Solr中的字段相同 提前谢谢
答案 0 :(得分:5)
我相信你正在寻找这样的东西:
SQL:
SELECT *
FROM books
WHERE id IN (SELECT bookId
FROM bookauthors
WHERE authorId IN (SELECT authorId
FROM author
WHERE author.name LIKE '%Rowling%'))
Solr:
http://<code>hostname:8983/solr/select?q=*:*&fq={!join+from=bookId+to=id}authorId:{!join+from=authorId+to=authorId}author.name:Rowling
关键是在:
之后传递下一个连接查询,而不是传递值。有关更多信息,请参阅this