【问题标题】:Solr join and non-Join queries give different resultsSolr 连接和非连接查询给出不同的结果
【发布时间】:2014-07-13 22:06:23
【问题描述】:

我正在尝试在我的 Solr 索引中链接两种类型的文档。父母被命名为“房子”,孩子被命名为“可用”。所以,我想返回一个包含一些过滤的可用文档的房屋列表。但是,以下查询给了我大约 18 个文档,这是错误的。它应该返回 0 个文档。

q=*:*
&fq={!join from=house_id_fk to=house_id}doctype:available AND discount:[1 TO *] AND start_date:[NOW/DAY TO NOW/DAY%2B21DAYS]
&fq={!join from=house_id_fk to=house_id}doctype:available AND sd_year:2014 AND sd_month:11

为了调试它,我首先尝试使用给定的过滤器查询检查是否有任何可用的文档。所以,我尝试了以下查询:

q=*:*
&fq=doctype:available AND discount:[1 TO *] AND start_date:[NOW/DAY TO NOW/DAY%2B21DAYS]
&fq=doctype:available AND sd_year:2014 AND sd_month:11

查询给出 0 个结果,这是正确的。因此,您可以看到两个查询是相同的,不同之处在于使用连接查询解析器。我有点困惑,为什么第一个查询会给出结果。我的理解是这不应该发生,因为第二个查询显示没有任何可用的文档满足给定的过滤器查询。

【问题讨论】:

    标签: join solr


    【解决方案1】:

    我想通了。

    原因仅仅是 Solr 中的连接类型。这是一个外连接。由于两个过滤器查询是分开执行的,即使我的意图是同时应用麻烦条件,也会返回具有折扣 > 1 或 (sd_year:2014 AND sd_month:11) 的可用文档的房子。

    但是,在第二种情况下,同时应用两个条件来查找可用文档,然后根据匹配的可用文档返回房屋。由于没有任何可用的文档同时满足这两个条件,因此没有任何匹配的房子给出零结果。

    确实花了一些时间来解决这个问题,我希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      相关资源
      最近更新 更多