【问题标题】:Solr query time joinSolr 查询时间连接
【发布时间】:2013-08-12 17:02:32
【问题描述】:

我正在尝试对具有相同名称 (company_id) 但来自不同实体的两个字段进行连接,以根据它没有的字段查询文档。

例如:我有一个销售实体和一个公司实体,其中销售实体持有公司 ID,公司实体持有公司名称。

由于大小原因,我无法在索引时执行此连接。

我希望获得在x 上进行销售的公司的名称。

我尝试了以下两种方法:

q={!join+from=company_id+to=company_id}sales:[100 TO *]

fq={!join+from=company_id+to=company_id}sales:[100 TO *]

对于fq,我刚刚将*:* 指定为q 参数。

在这两种情况下,我都得到了结果,但结果没有在那个范围内销售。

我该如何解决这个问题?

使用 Solr 4.4

注意:这似乎只涉及一个实体。

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    “不同的实体”是指 2 Solr Core 吗? 在这种情况下,您使用了稍微不同的 sintax:

    http://localhost:8983/solr/<coreTO>/select?q={!join from=docId to=id fromIndex=<coreFROM>}query
    

    【讨论】:

    • 不,我的意思是多个实体(多于一组 标签)
    【解决方案2】:

    从此链接Solr-join

    我找到了解决办法。

    据此:

    连接操作是按术语完成的,因此“from”和“to”字段必须使用兼容的字段类型。例如:StrField 和 TrieIntField 之间的连接将不起作用,同样,使用 LowerCaseFilterFactory 的 StrField 和 TextField 之间的连接仅适用于字符串字段中已经小写的值。

    【讨论】:

    • “from”和“to”字段类型应该相同。如下所示:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多