solr(二) solr5.5导入Ik分词,导入数据库数据

来源:互联网 发布:淘宝联盟退款无返利 编辑:程序博客网 时间:2024/05/21 06:23

请结合上一篇看,tomcat目录以及solr home

一、导入IK分词

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。打开,加入:

<fieldType name="text_ik" class="solr.TextField">                      <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>                      <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>            </fieldType>

5、重启tomcat。浏览器打开http://localhost:8080/solr/admin.html。选择一个core,点击Analysis,在右边框中输入一段话,下面Analyse Fieldname / FieldType选择 text_ik,没有话好好的去检查之前的配置。成功如下图:
这里写图片描述

二、导入数据库数据

一般solr导入数据库不常用,在实际开发中都是操作代码进行增删查改,不过还是要了解一下。
1、mysql新建测试表并导入数据:admin

/*Navicat MySQL Data TransferSource Server         : lztSource Server Version : 50716Source Host           : localhost:3306Source Database       : solrTarget Server Type    : MYSQLTarget Server Version : 50716File Encoding         : 65001Date: 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.xml</str>        </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>    <!-- 这是mysql的配置 -->    <dataSource driver="com.mysql.jdbc.Driver"     url="jdbc:mysql://localhost:3306/solr?useUnicode=true&amp;characterEncoding=utf-8" user="root" password="123456"/>    <document>        <!-- name属性,就代表着一个文档,可以随便命名 -->        <!-- query是一条sql,代表在数据库查找出来的数据 -->        <entity name="admin" pk="id" query="select id,name,age,message from admin">            <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->            <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文件中配置域。

<field name="my_name" type="text_ik" indexed="true" stored="true"/>     <field name="my_age" type="int" indexed="true" stored="true"/>     <field name="my_message" type="text_ik" indexed="true" stored="true"/>

注意:千万别手贱添加id,eg:

<field name="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。

5、数据导入,重启tomcat,打开浏览器链接,如下图操作:
这里写图片描述

6、查看数据
这里写图片描述

原创粉丝点击