Solr join返回零结果

时间:2017-05-30 09:10:19

标签: solr lucene

我正在使用Solr 6.4.2。我已经定义了2个核心:

  • 公司,字段为“ ID,城镇,名称,类型,ManagerId
  • 用户,字段为“ ID,登录,ManagerId,电子邮件

在用户核心中,字段ManagerId是父子关系(ManagerId-> Id)。

公司和用户通过公司关联.ManagerId-> users.Id

我正在尝试构建一个非常简单的连接查询:

{!join from=ManagerId to=Id fromIndex=users}Login:someuser1

url看起来像:

?q=*:*&fq={!join%20from=ManagerId%20to=Id%20fromIndex=users}Login:someuser1

什么都行不通,我总是得到零结果。我只是想了解Solr如何加入。在我看来,Solr连接和SQL连接之间的理解存在很大差异。

事实上,我想做以下的查询:

  • 按公司类型
  • 获取用户的所有文档
  • 由用户经理提供公司

现在无论我如何编写连接查询,我总是得到零结果。

1 个答案:

答案 0 :(得分:0)

在公司核心上尝试此操作(假设您希望让某个经理登录来运行所有公司):

  • login:someuser1是您放在子表上的过滤条件,这应该是您要查找的经理登录名
  • from=ManagerId应该是子表上的ID,所以这是错误的
  • to=id是父表上与子表相关的字段,所以这是错误的
  • fromIndex是子表,这是正确的

    {!join from=ManagerId to=Id fromIndex=users}Login:someuser1