Solr join返回零结果

Solr join返回零结果,solr,lucene,Solr,Lucene,我使用的是Solr6.4.2。我定义了两个核心: 公司,字段为“Id、城镇、名称、类型、经理Id” 用户,带有“Id、登录、ManagerId、电子邮件”字段 在users core中,ManagerId字段是父子关系(ManagerId->Id) 公司和用户通过companys.ManagerId->users.Id关联 我正在尝试构建一个非常简单的连接查询: {!join from=ManagerId to=Id fromIndex=users}Login:someuser1 url看

我使用的是Solr6.4.2。我定义了两个核心:

  • 公司,字段为“Id、城镇、名称、类型、经理Id
  • 用户,带有“Id、登录、ManagerId、电子邮件”字段
在users core中,ManagerId字段是父子关系(ManagerId->Id)

公司和用户通过companys.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 join是如何工作的。在我看来,对Solr连接和SQL连接的理解有很大的不同

事实上,我想进行如下查询:

  • 按公司类型从用户处获取所有文档
  • 通过用户经理获取公司信息

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

在公司核心上尝试此操作(假设您希望通过某个经理登录名运行“获取所有公司”):

  • login:someuser1
    是您在子表上设置的筛选条件,这应该是您要查找的经理登录名
  • from=ManagerId
    应该是子表上的id,因此这是错误的
  • to=id
    是父表上与子表相关的字段,因此这是错误的
  • fromIndex
    是子表,这是正确的

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

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

  • login:someuser1
    是您在子表上设置的筛选条件,这应该是您要查找的经理登录名
  • from=ManagerId
    应该是子表上的id,因此这是错误的
  • to=id
    是父表上与子表相关的字段,因此这是错误的
  • fromIndex
    是子表,这是正确的

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