2013-05-10 100 views
3

我也跟着提到的步驟@:http://wiki.apache.org/solr/DataImportHandler不靈增量導入處理正確

我也嘗試從計算器其他的解決辦法仍然但是它不工作。

問題是: 我每次運行它時都配置了Delta-import處理程序;它索引來自數據庫的所有記錄。 我在數據庫中有30條記錄。每次運行增量導入時,它都會索引所有30條記錄。我只想要那些被更改/刪除的應該被索引。

任何快速幫助/指針/解決方案,這個問題表示讚賞。


數據-config.xml中

<dataConfig> 
    <dataSource type="JdbcDataSource" name="ds-books" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test" user="root" password=""/> 
    <document name="books"> 
     <entity name="books" pk="id" query="select * from books" deltaImportQuery="SELECT * FROM books WHERE id = '${dataimporter.delta.id}'" deltaQuery="SELECT id FROM books WHERE last_modified &gt; '${dataimporter.last_index_time}'" > 
      <field column="id" name="id" indexed="true" stored="true"/> 
      <field column="NAME" name="name" /> 
      <field column="PRICE" name="price" /> 
     <field column="last_modified" name="last_modified" /> 
     </entity> 
    </document> 
</dataConfig> 

,我使用來執行它的命令是:

http://localhost:8983/solr/dataimport?command=delta-import 

dataimport.properties文件:

週五5月10日十七點13分18秒IST 2013

last_index_time = 2013年5月10日17 \:13 \:18

books.last_index_time = 2013- 05-10 17 \:13 \:18

dataimporter.last_index_time = 2013年5月10日17 \:11 \:42


XML響應,我得到的是如下:

<response> 
    <lst name="responseHeader"> 
     <int name="status">0</int> 
     <int name="QTime">4</int> 
     </lst> 
     <lst name="initArgs"> 
      <lst name="defaults"> 
      <str name="config">data-config.xml</str> 
      </lst> 
     </lst> 
    <str name="command">delta-import</str> 
    <str name="status">idle</str> 
    <str name="importResponse"/> 
    <lst name="statusMessages"> 
     <str name="Total Requests made to DataSource">1</str> 
     <str name="Total Rows Fetched">30</str> 
     <str name="Total Documents Skipped">0</str> 
     <str name="Delta Dump started">2013-05-10 17:13:17</str> 
     <str name="Identifying Delta">2013-05-10 17:13:17</str> 
     <str name="Deltas Obtained">2013-05-10 17:13:17</str> 
     <str name="Building documents">2013-05-10 17:13:17</str> 
     <str name="Total Changed Documents">30</str> 
     <str name="">Indexing completed. Added/Updated: 30 documents. Deleted 0 documents.</str> 
    <str name="Committed">2013-05-10 17:13:17</str> 
    <str name="Total Documents Processed">30</str> 
    <str name="Time taken">0:0:0.303</str></lst> 
    <str name="WARNING">This response format is experimental. It is likely to change in the future.</str> 
    </response> 

日誌文件中我得到以下的事情:在數據-config.xml中

INFO: Read dataimport.properties 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder doDelta 
INFO: Starting delta collection. 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder collectDelta 
INFO: Running ModifiedRowKey() for Entity: books 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.JdbcDataSource$1 call 
INFO: Creating a connection for entity books with URL: jdbc:mysql://localhost/test 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.JdbcDataSource$1 call 
INFO: Time taken for getConnection(): 9 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder collectDelta 
INFO: Completed ModifiedRowKey for Entity: books rows obtained : 30 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder collectDelta 
INFO: Completed DeletedRowKey for Entity: books rows obtained : 0 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder collectDelta 
INFO: Completed parentDeltaQuery for Entity: books 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder doDelta 
INFO: Delta Import completed successfully 
May 10, 2013 5:13:18 PM org.apache.solr.handler.dataimport.DocBuilder finish 
INFO: Import completed successfully 
May 10, 2013 5:13:18 PM org.apache.solr.update.DirectUpdateHandler2 commit 
INFO: start commit{flags=0,_version_=0,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommi 
t=false} 
May 10, 2013 5:13:18 PM org.apache.solr.core.SolrDeletionPolicy onCommit 
INFO: SolrDeletionPolicy.onCommit: commits:num=2 

回答

9

變遷以下值已經解決問題

$ {dih.last_index_time}改爲$ {} dataimporter.last_index_time

$ {} dih.delta.id代替 $ {} dataimporter.delta.id

我使用SOLR 4.0

2

同時呼籲增量導入通清潔參數=「假」,這將幫助你。

eg:domainname:8983/solr/dataimport?command = delta-import & clean = false'

+0

我使用的是: ?command = delta-import&clean = false&commit = true 仍然不適用於我 – Shashank 2016-11-11 10:04:20