情况搭建
1、到apache下载solr,地点:http://mirrors.hust.edu.cn/apache/lucene/solr/
2、解压到某个目次
3、cd into D:\Solr\solr-4.10.3\example
4、Execute the server by “java -jar startup.jar”Solr会自动运行在自带的Jetty上
5、会见http://localhost:8983/solr/#/
PS:solr-5.0 以上默认对schema的打点是利用managed-schema,不妙手动修改,需要利用Schema Restful的API操纵。假如要想手动修改设置,把managed-schema拷贝一份修改为schema.xml,在solrconfig.xml中修改如下:
<!-- <schemaFactory class="ManagedIndexSchemaFactory"> <bool name="mutable">true</bool> <str name="managedSchemaResourceName">managed-schema</str> </schemaFactory> --> <!-- <processor class="solr.AddSchemaFieldsUpdateProcessorFactory"> <str name="defaultFieldType">strings</str> <lst name="typeMapping"> <str name="valueClass">java.lang.Boolean</str> <str name="fieldType">booleans</str> </lst> <lst name="typeMapping"> <str name="valueClass">java.util.Date</str> <str name="fieldType">tdates</str> </lst> <lst name="typeMapping"> <str name="valueClass">java.lang.Long</str> <str name="valueClass">java.lang.Integer</str> <str name="fieldType">tlongs</str> </lst> <lst name="typeMapping"> <str name="valueClass">java.lang.Number</str> <str name="fieldType">tdoubles</str> </lst> </processor> --> <schemaFactory class="ClassicIndexSchemaFactory"/>
建设MySQL数据
DataBase Name: mybatis
Table Name: user
Db.sql
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', 'summer', '30', 'shanghai'); INSERT INTO `user` VALUES ('2', 'test1', '22', 'suzhou'); INSERT INTO `user` VALUES ('3', 'test1', '29', 'some place'); INSERT INTO `user` VALUES ('4', 'lu', '28', 'some place'); INSERT INTO `user` VALUES ('5', 'xiaoxun', '27', 'nanjing');
利用DataImportHandler导入并索引数据
1) 设置D:\Solr\solr-4.10.3\example\solr\collection1\conf\solrconfig.xml
在<requestHandler name=”/select” class=”solr.SearchHandler”>前面上加上一个dataimport的处理惩罚的Handler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
2) 在同目次下添加data-config.xml
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/mybatis" user="root" password="luxx" batchSize="-1" /> <document name="testDoc"> <entity name="user" pk="id" query="select * from user"> <field column="id" name="id"/> <field column="userName" name="userName"/> <field column="userAge" name="userAge"/> <field column="userAddress" name="userAddress"/> </entity> </document> </dataConfig>
说明:
dataSource是数据库数据源。
Entity就是一张表对应的实体,pk是主键,query是查询语句。
Field对应一个字段,column是数据库里的column名,后头的name属性对应着Solr的Filed的名字。
3) 修改同目次下的schema.xml,这是Solr对数据库里的数据举办索引的模式
(1)保存_version_ 这个field