【问题标题】:Solr join returns zero resultsSolr 连接返回零结果
【发布时间】:2017-10-30 16:19:16
【问题描述】:

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

  • 公司,字段为“Id、Town、Name、Type、ManagerId
  • 用户,字段为“Id、Login、ManagerId、Email

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

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

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

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

网址看起来像:

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

没有任何效果,我总是得到零结果。我只是想了解 Solr join 是如何工作的。在我看来,Solr 联接和 SQL 联接之间的理解存在很大差异。

其实我想做这样的查询:

  • 按公司类型从用户那里获取所有文档
  • 通过用户管理员获取公司

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

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    在公司核心上试试这个(假设你想让所有公司都由某个经理登录运行):

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

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

    【讨论】:

      猜你喜欢
      • 2015-07-13
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      相关资源
      最近更新 更多