我想從我的Windows 7 Enterrpise工作站(美國)使用Solr 4.6從遠程計算機(亞洲)上的SQL Server 2008表訪問760萬條記錄。 0.我試圖按照docs使用clean = false做一個完全導入。我正在爲SQL Server使用JTDS驅動程序。 我收到以下錯誤後4個小時:使用Solr DataImportHandler檢索大量表的連接重置異常 - SQL Server
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
..... at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:850)
我假設SQL服務器連接斷開,那麼多的時間後,套接字連接。 它適用於當我嘗試從Solr管理界面開始= 0,行= 100000,即只有100K記錄。 Solr中使用DataImportHandler
我的數據庫定義文件:
<dataSource name="dbDS"
type="JdbcDataSource"
driver="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://xxx.corp.com/xxx;instance=xxx;useCursors=true;useLOBs=false;socketKeepAlive=true;socketTimeout=432000;"
user="xx" password="xxx" />
<entity name="log"
dataSource="dbDS"
query="select * from XXX"
transformer="TemplateTransformer, DateFormatTransformer"
deltaImportQuery="select * from log where LOGID ='${dataimporter.delta.id}'"
deltaQuery="select LOGID from log where TIME_STAMP > '${dataimporter.last_index_time}'"
preImportDeleteQuery="type:log"
> .....
我怎樣才能獲得使用全進口的所有7.6萬條記錄?
請問dataSource中的batchSize屬性是否適用於jdbc連接?
我正在重新發明輪子,編寫我自己的代碼,從 中獲取數據庫中的數據,並將最後導入的時間戳存儲在屬性文件中通過Solr的delta導入並添加到Solr,同時將schema.xml中的所有分析器修改應用到結果集。我正在考慮捕獲此異常並重試從DB中拉出的一批數據。是否有更簡單的方法可以執行這個 ? 我也看了這個:solr, solrj: I/O exception (java.net.SocketException) caught when processing request: Connection reset
我確實有一個conf/dataimport.properties。正如其他一些職位所述。
TIA,
維傑