昨天我把solr搭建起来了,今天们试一下把数库与solr结合起来 我用的是 mysql 数据库
说简单的就是在solr中配置一些数据库连接就行了
1:在apache-tomcat-7.0.47\bin\solr\collection1 中找到solrconfig.xml 文件(这个是solr的配置信息文件 组件与其他附件都在这里配置的)
- <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
- <lst name="defaults">
- <str name="config">data-config.xml</str>
- </lst>
- </requestHandler>
- //把上面的代码插入到相对应的位置
- <?xml version="1.0" encoding="utf-8"?>
- <dataConfig>
- <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
- url="jdbc:mysql://192.168.1.100:3306/easytoo_product"
- user="easytoo_product"
- password="easytoo_product"/>
- <document name="cms">
- <entity name="view_blog" pk="pk_id" query="select a.id as id,a.name as name,a.code as code from t_product a">
- <field column="id" name="id" />
- <field column="name" name="name" />
- <field column="code" name="code" />
- </entity>
- </document>
- </dataConfig>
大家这个时候注意了:在<entity>标签中的
- <pre name="code" class="html">query="select a.id as id,a.name as name,a.code as code from t_product a"
这个就是你要查询并创建索引的表格必须把字段列出来
- <field column="id" name="id" />
如我在data-config.xml创建的name索引 就必须在schema.xml 文件中 <fields> 进行配置
- <field name="name" type="text_general" indexed="true" stored="true"/>
如果你在data-config.xml 配置了一个 code 索引 但是你在schema.xml 文件中 <fields> 并没有配置那么索引是不会被创建起来的。
3:自然是导包了
将mysql的驱动文件mysql-connector-java-5.1.20-bin.jar添加到solr的war包中(tomcat7\webapps\solr\WEB-INF\lib),solr-dataimporthandler-4.3.1.jar 加入到tomcat7\webapps\solr\WEB-INF\lib 中。
4:启动tomcat
出现这样的画面:
证明你已经成功了。
接下来我们开始连接数据库创建索引:
这个时候你需要按refresh status按钮 来刷新状态查看是否已经完成导入了
上图我们已经成导入228条数据,我的数据库表中也是228条。那么现在我们来测试一下索引查询
1 :查询这个不多说
2 q 是查询条件图中我写的 是 *:* 意思就是全部查询
这是我们看看data-confing.xml中我们配置的索引id、name 、 code 三个写法如下
id:xxxxxxxxxxx
name:杨帆(因为这里我配置的name 索引的分词类型是 text_general 所以这里不能使用 * 号查询)但是这些索引都是支持模糊查询的
3:sort 查询结果分页结果数这个不多说了
4:查询后返回的结果类型 :有json xml 等等
5:查询结果集
接下来我们将会在Eclipse中调用 solr 的相关接口!