Solr 4.0是否能够为多个核心使用"join"?

zx_*_*ing 23 lucene solr join

我注意到Solr 4.0为具有关系的文档引入了"join"功能.这很好,但是,我注意到http://wiki.apache.org/solr/Join给出的示例是单核,所有文档都在单个索引中.

有人知道我是否可以使用'join'作为多核心?

mja*_*jel 42

这条评论说可以通过以下方式使用:

{!join from=fromField to=toField fromIndex=fromCoreName}fromQuery
Run Code Online (Sandbox Code Playgroud)

我自己试了一下,这是一个更详细的例子:有两个核心

  • 品牌{id,name}
  • 产品{id,name,brand_id}

品牌:{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";
Run Code Online (Sandbox Code Playgroud)

结果将是:{id:"1",名称:"Apple"}

  • 这是一个很好的例子.更准确地说,SQL等价物是`SELECT b.*FROM brands b INNER JOIN products p ON b.id = p.brand_id WHERE p.name ="iPad";`因为Solr不能给出fromCore的字段:-( (3认同)