2

我正在尝试对具有相同名称(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

注意:这似乎只适用于涉及的一个实体。

4

2 回答 2

0

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

http://localhost:8983/solr/<coreTO>/select?q={!join from=docId to=id fromIndex=<coreFROM>}query
于 2013-09-23T13:06:23.610 回答
0

从这个链接Solr-join

我找到了解决方案。

根据这个 :

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

于 2015-09-22T06:49:03.360 回答