1,修改solr-data-config。xml文件,內容如下:(PS:本文是以oracle數據庫中yqfx 數據庫的 siteinfo表來創建索引的,其site表中有id,name,url三個字段,均是varchar型,schema.xml文件我們type就配string 型)
<dataConfig>
<dataSource password="scott" user="scott" url="jdbc:oracle:thin:@192.168.0.41:1521:yqfx" driver="oracle.jdbc.driver.OracleDriver"/>
<document name="Info" pk="id">
<entity name="zpxx" transformer="ClobTransformer" pk="id"
query="SELECT * FROM siteinfo"
deltaImportQuery="SELECT id,url FROM siteinfo where id ='${dih.delta.id}'"
deltaQuery="select id from siteinfo where createTime > '${dataimporter.last_index_time}'">
<field name="id" column="id"/>
<field name="url" column="url"/>
<filed name="createTime" coiumn="createTime"/>
</entity>
</document>
</dataConfig>
其中 :
query是獲取全部數據的SQL(solr從sql中獲取那些數據),多列
deltaImportQuery是獲取增量數據時使用的SQL(數據庫新增數據追加到solr的數據),多列
deltaQuery是獲取pk的SQL(數據庫新增數據是,追加到solr的數據時的條件,根據id ,條件是最后一次獲取的時間,${dataimporter.last_index_time,最后獲取的時間}),一列
2,修改schema.xml文件申明field,field的名字應該和sql的查詢結果集列名一致;
<--zx配置SSH庫的field -->
<field name="id" type="int " indexed="true" stored="true" multiValued="false" required="true"/>
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
<field name="url" type="string" indexed="true" stored="true" multiValued="false" />
3,進入solr管理界面,command選擇full-import全部導入;entity需要導入的實體,也就是配置的哪個sql,點擊execute執 行導入,
