Solr 5.3 匯入SQL Server資料
前面 我有一篇文章講解了solr的配置 ,見 ,這裡就不講了 ,下面的配置是在solr已經成功整合到tomcat的前提下進行的 。
進入正題,
1,修改solr-data-config。xml檔案,內容如下:(PS:本文是以sqlserver資料庫中的SSH 資料庫的 users表來建立索引的,其users表中有id,name,pwd三個欄位,均是varchar型,schema.xml檔案我們type就配string 型)
<dataConfig>
<dataSource password="1234" user="sa" url="jdbc:sqlserver://127.0.0.1:1433;databaseName=SSH" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<document name="Info" pk="id">
<entity name="zpxx" transformer="ClobTransformer" pk="id"
query="SELECT [ID],[name] as name FROM [SSH].[dbo].[users]"
deltaImportQuery="SELECT [Id],[name] as name FROM [SSH].[dbo].[users] where [PublishDate] > '${dataimporter.last_index_time}'"
deltaQuery="SELECT id FROM [SSH].[dbo].[users] where [PublishDate] > '${dataimporter.last_index_time}'">
<field name="id" column="id"/>
<field name="name" column="name"/>
<field name="pwd" column="pwd"/>
</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="string " indexed="true" stored="true" multiValued="false" required="true"/>
<field name="name" type="string" indexed="true" stored="true" multiValued="false" />
<field name="pwd" type="string" indexed="true" stored="true" multiValued="false" />
3,進入solr管理介面,command選擇full-import全部匯入;entity需要匯入的實體,也就是配置的哪個sql,點擊execute執 行匯入,如果資料很多的話需要導一段時間,不時的點一下refresh status重新整理一下,看看匯入是否完成,匯入完成後會告訴你匯入了多少資料,用了多少時間。
Solr3.6.1 在Tomcat6下的環境搭建
基於Tomcat的Solr3.5叢集部署
在Linux上使用Nginx為Solr叢集做負載平衡
Linux下安裝使用Solr
在 Ubuntu 12.04 LTS 上通過 Tomcat 部署 Solr 4
Solr實現Low Level查詢解析(QParser)
基於Solr 3.5搭建搜尋伺服器
Solr 3.5開發應用教程 PDF高清版
Solr 4.0 部署執行個體教程
Solr 的詳細介紹:請點這裡
Solr 的:請點這裡
本文永久更新連結地址: