我現在有一張大約100,000行的表格。我想索引Solr索引中的表中的數據。Solr中索引數據庫表數據的最佳方法是什麼?
所以天真的方法是:
- 獲取所有的行
- 對於每一行:轉換爲SolrDocument每個文檔添加到一個請求
- 一旦所有的行被轉換然後交請求
一些問題,這個方法,我能想到的是:
-
個
- 加載太多的數據(整個表的內容)到內存中
- 發佈一個大的要求
然而,一些優勢:
- 只有一個請求到數據庫
- Solr只有一個POST請求
該方法不可擴展,我看到自從隨着表的增長,內存要求和POST請求的大小也會增加。我需要或許採取n
行數,處理它們,然後採取下一個n
?
我在想如果任何人有任何關於如何最好地實現這個建議?
(PS。我沒有搜索的網站,但我沒有發現類似於這樣的問題。)
感謝。
[DataImportHandler](http://wiki.apache.org/solr/DataImportHandler)? – nikhil500 2012-02-06 15:25:14
我讀到了這個,但它不是一個直接的列到indexField的映射,有一個應用的轉換,因此希望在代碼中做到這一點。 – C0deAttack 2012-02-06 17:34:54
DIH支持許多[變形金剛](http://wiki.apache.org/solr/DataImportHandler#Transformer)。你也可以編寫[自定義轉換器](http://wiki.apache.org/solr/DIHCustomTransformer)。如果可能的話,我會推薦使用DIH - 我認爲它將需要最少量的編碼,並且比發佈文檔更快。 – nikhil500 2012-02-06 17:42:35