请结合上一篇看,tomcat目录以及solr home
solr导入IK分词,为了支持中文分词。导入很简单:
1、下载Ik分词jar包以及所需的扩展词典
我的百度云下载:https://pan.baidu.com/s/1qYv6WaS
或者csdn资源下载:http://download.csdn.net/download/lztizfl/9999936
2、下载解压缩:
3、把IKAnalyzer2012FF_u2.jar复制到F:\Mysolr\tomcat8\webapps\solr\WEB-INF\lib下,其他三个文件(ext.dic、IKAnalyzer.cfg.xml、stopword.dic)复制到F:\Mysolr\tomcat8\webapps\solr\WEB-INF\classes下。
4、在F:\Mysolr\solr home\lztweb\conf中找到managed-schema文件,不要删除,直接复制并重命名schema.xml。打开,加入:
"text_ik" class="solr.TextField">
type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
5、重启tomcat。浏览器打开http://localhost:8080/solr/admin.html。选择一个core,点击Analysis,在右边框中输入一段话,下面Analyse Fieldname / FieldType选择 text_ik,没有话好好的去检查之前的配置。成功如下图:
一般solr导入数据库不常用,在实际开发中都是操作代码进行增删查改,不过还是要了解一下。
1、mysql新建测试表并导入数据:admin
/*
Navicat MySQL Data Transfer
Source Server : lzt
Source Server Version : 50716
Source Host : localhost:3306
Source Database : solr
Target Server Type : MYSQL
Target Server Version : 50716
File Encoding : 65001
Date: 2017-09-28 16:13:05
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `admin`
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`message` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES ('1', '小明', '19', '123123');
INSERT INTO `admin` VALUES ('2', '小红', '20', '啦啦啦啦');
INSERT INTO `admin` VALUES ('3', '小军', '21', '你好');
INSERT INTO `admin` VALUES ('4', '小林', '24', '分词不错');
INSERT INTO `admin` VALUES ('5', '小刚', '20', '你好啊');
INSERT INTO `admin` VALUES ('6', '小小', '25', '哈哈');
INSERT INTO `admin` VALUES ('7', '小敏1', '21', '啦啦啦');
INSERT INTO `admin` VALUES ('8', '小勇', '23', '你好');
2、找到F:\Mysolr\solr home\lztweb\conf目录下solrconfig.xml
打开,添加
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xmlstr>
lst>
requestHandler>
3、找到F:\Mysolr\solr-5.5.0\example\example-DIH\solr\solr\conf中的文件solr-data-config.xml,重命名为data-config.xml,并复制到F:\Mysolr\solr home\lztweb\conf目录下。打开,添加如下:
dataConfig>
<dataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr?useUnicode=true&characterEncoding=utf-8" user="root" password="123456"/>
<document>
<entity name="admin" pk="id" query="select id,name,age,message from admin">
<field column="id" name="id"/>
<field column="name" name="my_name"/>
<field column="age" name="my_age"/>
<field column="message" name="my_message"/>
entity>
document>
dataConfig>
注意:不能直接写&符号连接进行数据库的的连接,要用&不然会报错,坑!
4、在managed-schema文件中配置域。
"my_name" type="text_ik" indexed="true" stored="true"/>
"my_age" type="int" indexed="true" stored="true"/>
"my_message" type="text_ik" indexed="true" stored="true"/>
注意:千万别手贱添加id,eg:
"my_id" type="int" indexed="true" stored="true"/>
然后在data-config.xml中定义:
<field column="id" name="my_id"/>
这样做数据导入不进去,会产生一个错误。Solr Document [null] missing required field: my_id 原因看:http://llwbrothers.blog.51cto.com/2360705/867477。