前面 我有一篇文章讲解了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 pk="id">
<entity 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 column="id"/>
<field column="name"/>
<field 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 type="string " indexed="true" stored="true" multiValued="false" required="true"/>
<field type="string" indexed="true" stored="true" multiValued="false" />
<field type="string" indexed="true" stored="true" multiValued="false" />
3,进入solr管理界面,command选择full-import全部导入;entity需要导入的实体,也就是配置的哪个sql,点击execute执 行导入,如果数据很多的话需要导一段时间,不时的点一下refresh status刷新一下,看看导入是否完成,导入完成后会告诉你导入了多少数据,用了多少时间。
在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4