2012-08-09 98 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