【问题标题】:Using inner Join in Solr query在 Solr 查询中使用内部联接
【发布时间】: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 中的字段相同
提前致谢

【问题讨论】:

标签: sql join solr lucene inner-join


【解决方案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,谢谢!更新了链接。
猜你喜欢
  • 2015-09-29
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2013-11-18
  • 1970-01-01
相关资源
最近更新 更多