2016-07-09 43 views
0

有沒有辦法繼續從我們留在Apache Solr實現使用數據導入處理程序的Apache Solr的索引SQL數據

例子,其中一個大的SQL數據集的索引: 像我解壓後在1000行停止索引一個數據和處理完成我停止了我的Solr並且索引被更新了,現在我想從那裏繼續。

如何做到這一點?

這是我data-config.xml

<entity name="id" query="select movie_id as 'id',title, genres from movies;"> 
    <field column="title" name="movie_name"/> 
    <field column="genres" name="genres"/> 
    <entity name="links_id" query="select imdb_id,tmdb_id from links where movie_id=${id.id};"> 
     <field name="imdb_id" column="imdb_id" /> 
     <field name="tmdb_id" column="tmdb_id" /> 
    </entity> 
    <entity name="movie_rating" query="select avg(rating),count(*) from ratings where movie_id=${id.id};"> 
     <field column="avg(rating)" name="avg_rating"/> 
     <field column="count(*)" name="total_users_rated"/> 
    </entity> 
</entity> 

回答

0

使用在SQL中的LIMIT語句進行DIH配置。在Solr中沒有使用automagic的方法,因爲Solr無法知道索引了多少行,以及SQL數據庫在重新啓動索引過程之間是否發生了變化。

當調用完全導入並在配置文件中使用${}語法引用該值(start_at=1000或類似內容)時,您可能也可以通過URL嚮導入過程提交參數。但是對於一次或兩次,只需使用DIH配置文件中的硬編碼值即可。

+0

其實我以爲這樣做,但問題是,如果我將開始重新索引完全導入它將刪除以前的索引文件。 –

+0

您可以使用deltaImport提供替代查詢 - 但更好的是,在URL中添加'clean = false':clean:(默認爲'true')。在索引開始之前告訴是否清理索引 – MatsLindh