【发布时间】:2016-03-23 17:19:31
【问题描述】:
我注意到 Solr 4.0 为具有关系的文档引入了“加入”功能。这很好,但是,我注意到http://wiki.apache.org/solr/Join 给出的示例是针对单核的,所有文档都在单个索引中。
有人知道我是否可以对多核使用“加入”吗?
【问题讨论】:
我注意到 Solr 4.0 为具有关系的文档引入了“加入”功能。这很好,但是,我注意到http://wiki.apache.org/solr/Join 给出的示例是针对单核的,所有文档都在单个索引中。
有人知道我是否可以对多核使用“加入”吗?
【问题讨论】:
This comment 表示可以使用:
{!join from=fromField to=toField fromIndex=fromCoreName}fromQuery
我自己试过了,这里有一个更详细的例子: 有两个核心
品牌:{1,Apple},{2,Samsung},{3,HTC}
产品:{1, iPhone, 1}, {2, iPad, 1}, {3, Galaxy S3, 2}, {4, Galaxy Note, 2}, {5, One X, 3}
http://example.com:8999/solr/brands/select?q=*:*&fq={!join from=brand_id to=id fromIndex=products}name:iPad
这翻译成这样的:
SELECT b.* FROM brands b
INNER JOIN products p ON b.id=p.brand_id
WHERE p.name="iPad";
结果将是:{id:"1", name:"Apple"}
【讨论】:
SELECT b.* FROM brands b INNER JOIN products p ON b.id=p.brand_id WHERE p.name="iPad";,因为 Solr 不能给出 fromCore 的字段:-(
q=name:iPad&fq={!join from=brand_id to=id fromIndex=products}或q=*:*&fq={!join from=brand_id to=id fromIndex=products}name:iPad。 q=: 无效。