在Solr查询中使用内部连接

Tam*_*hai 5 sql lucene solr join inner-join

在SQL中,我有这样的查询

SELECT * 
FROM table1 INNER JOIN table2 ON 
     table1.table1To2Id = table2.table2Id INNER JOIN 
     table3 ON table1.table1To3Id = table3.table3Id

如何使用Solr进行相同的查询?鉴于SQL中的字段是Solr中的相同字段
,请提前感谢

Jav*_*per 7

我相信你正在寻找这样的东西:

SQL:

SELECT * 
FROM books 
WHERE id IN (SELECT bookId 
             FROM bookauthors 
             WHERE authorId IN (SELECT authorId 
                                FROM author 
                                WHERE author.name LIKE '%Rowling%'))
Run Code Online (Sandbox Code Playgroud)

Solr的:

http://<code>hostname:8983/solr/select?q=*:*&fq= 
{!join+from=bookId+to=id}
authorId:{!join+from=authorId+to=authorId}
author.name:Rowling
Run Code Online (Sandbox Code Playgroud)

关键是传递下一个连接查询:而不是传递值.有关更多信息,请参阅此内容

  • +1您引用的参考文献仅包含更多示例,但没有明确的指南。还有其他地方可以找到Solr手册,尤其是。更复杂的功能?谢谢 (3认同)
  • @user3166881,谢谢!更新了链接。 (2认同)