2012-08-09 115 views
0

我想在solr中创建嵌套文档,我正在使用java/GWT/SolrJ。如何在Solr索引中创建嵌套文档?

目前我索引以下字段:

项目:
ID标题递减。

1 XYZ xyzxyzxyz

2 PQR pqrpqrpqr

3 ABC ABCABCABC。

但现在我想创建与每个文档从上面即用于ID 1连接的一个多个文档有包含follwing领域的一个子文档:

Item_User_Details:

项目1:

用户细节

1 qweqweqwe

2 xyzxyzxyz

3 asdasdasd

这样我想从上面的表格创建每个item id,有一个链接的item_user_details文件。

我该怎么做......? 在此先感谢...

回答

2

在我们的模式中,我们有很多相关的表格。

我们决定将所有关系平铺为一个文档。为了实现这一点,我们创建了一个自定义导入器(使用SolrJ),该导入器从索引中加载每个文档,添加相关字段并将该文档写回。

[编辑]
我们这样做是通过以下方式:

  1. 出口在CSV文件为每个表中的数据(项目,item_user_details)
  2. 导入每个CSV文件到Solr的,首先是顶部(在你的情况下项目)
  3. 启动一个嵌入式的Solr服务器:
    System.setProperty("solr.solr.home", config.getSolrIndexPath()); CoreContainer.Initializer initializer = new CoreContainer.Initializer(); this.coreContainer = initializer.initialize(); this.solr = new EmbeddedSolrServer(this.coreContainer, "");
    另外,您可以访问远程Solr的实例:
    this.solr = new HttpSolrServer("http://[your-url]/solr");
  4. 对于文件中的每一行创建一个SolrDocument
  5. 将其添加到索引this.solr.add(ClientUtils.toSolrInputDocument(doc));
  6. 提交从指数this.solr.commit();
  7. 装入文档(项目)
  8. 通过文档ID(item-id)识别csv文件中item_user_details的关系
  9. 加长加载的文件从item_user_details领域
  10. 提交文件再次
+0

刘若英:可以请您给我的例子或链接指...因为我是新来的Solr所以没有足够的主意。 – 2012-08-13 07:06:07

+0

新增了我的答案。 – 2012-08-13 09:08:33

+0

感谢您的回复Rene :) – 2012-08-13 09:25:28