2017-08-12 101 views
0

有一些solr核心的索引,我將它們從solr4轉換爲solr6,但是在solr獨立模式下。所以他們沒有solrcolud需要的「版本」字段。將solr獨立索引移植到solrcloud

這裏現在我想遷移到solrcloud 6,我需要把它們放在簇下。因爲當我將它們放在數據目錄下的solrcloud leader核心下時,版本字段在這些索引中不存在,因此我看到分片中的副本沒有更新。所以我決定通過lucene讀取它們,獲取每個doc字段,將它們添加到solrdoc中,然後通過doc將它們放到solrcloud中。但是,由於存在未存儲在這些索引中的字段,因此這些索引中存在的所有字段都不會在那裏移動。

最後似乎沒有辦法比重新索引。 我很感激是否有更好的想法或解決方案可以幫助我更輕鬆地遷移。

回答

0

如果有機會重新索引,就這樣做,這將是最好的(你必須處理兩個不同的問題:a)從4.X遷移到6.0和b)從獨立到SolrCloud ......它會變得混亂)。

如果不能重新索引:

  1. 存儲或者docValues所有字段=真?如果是這樣,您可以獲取文檔的原始內容。閱讀並使用solrj或一些腳本將它們編入索引。
  2. 如果沒有,並且您有版本字段:嘗試手動將索引放入Solrcloud中。不直接,但可能。
  3. 如果您沒有版本字段,我認爲將索引放在Solrcloud中是不可能的(儘管網絡上的某些帖子會讓您認爲它是正確的)。您可以嘗試編寫一些lucene代碼,將版本字段添加到所有文檔(使用有意義的值),但這應該是最後的手段。