情况搭建
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