在 Solr 查询中使用内部联接
Posted
技术标签:
【中文标题】在 Solr 查询中使用内部联接【英文标题】:Using inner Join in Solr query 【发布时间】:2014-08-13 08:37:28 【问题描述】:在 SQL 中,我有这样的查询
选择 * FROM table1 INNER JOIN table2 ON table1.table1To2Id = table2.table2Id 内连接 table3 ON table1.table1To3Id = table3.table3Id如何使用 Solr 进行相同的查询?鉴于 SQL 中的字段与 Solr 中的字段相同 提前致谢
【问题讨论】:
可能重复:***.com/questions/2636637/solr-join-query?rq=1 我不认为它重复,因为在我的情况下,我不想更改文档结构,它需要在 3 个文档之间进行连接查询 【参考方案1】:我相信您正在寻找这样的东西:
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
【讨论】:
+1 您引用的参考文献只有几个例子,但没有明确的指南。还有其他地方可以找到 Solr 手册,尤其是。更复杂的功能?谢谢 是否可以更新文档?链接不再有效 @user3166881,谢谢!更新了链接。以上是关于在 Solr 查询中使用内部联接的主要内容,如果未能解决你的问题,请参考以下文章