在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器
最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程。
版本信息:solr版本6.2.0+tomcat8+jdk1.8
推荐阅读:solr中文官方文档
参考:solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用
在eclipse中构建solr项目:
1.下载solr-6.2.0.zip,官网下载地址:http://lucene.apache.org/solr/downloads.html。
2.在eclipse中创建web项目solr。
3.将solr-6.2.0\server\solr-webapp\webapp下的内容复制到solr工程的webapp下。
4.将solr-6.2.0\server\lib\ext下的jar包,复制到solr工程的WEB-INF/lib中。
5.将solr-6.2.0\server\resources\log4j.properties文件复制到solr工程的source folder中。
6.在solr工程的webapp文件夹下,新建文件夹solrhome,将solr-6.2.0\server\solr下的文件夹以及文件copy到solrhome中。此时项目组成如下图:
7.修改web.xml文件,修改env-entry-value的值为"../webapps/solr/solrhome"。(如果env-entry-type报错,把标签env-entry-type放到env-entry-value前面即可)
8.启动tomcat,访问http://localhost:8080/solr/index.html,如下图说明构建成功。
solr添加core:
1.复制solr项目的solrhome/configsets/basic_configs文件夹到solrhome下,并改成任意名字(这里我的core名称是coretest)。
2.在solr项目页面中添加core,下图中coretest对应上面创建的文件夹名称,dataDir指定记录core的数据信息的文件夹,config和schema是core的配置文件,在文件夹coretest/conf下面可以找到。
创建完成后如图:
整合mysql:
1.找到tomcat目录下的webapps\solr\solrhome\coretest文件夹,复制core.properties到solr项目的webapp/solrhome/coretest目录下。(core.properties保存的是上一步创建的core的配置信息,solr启动后会查找该文件,用来恢复core,可以忽略该步骤,但是当启动solr时需要重新添加core)
2.创建一个mysql数据表,并添加一些基础数据,建表语句:
DROP TABLE IF EXISTS `solrtest`;
CREATE TABLE `solrtest` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`context` varchar(255) DEFAULT NULL COMMENT 'context',
`updateTime` datetime DEFAULT NULL COMMENT 'updateTime',
`sort` int(11) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
INSERT INTO `solrtest` VALUES ('1', 'qweqwe', '2017-02-04 09:21:56', '1');
INSERT INTO `solrtest` VALUES ('2', '足球', '2017-02-04 11:55:02', '1');
INSERT INTO `solrtest` VALUES ('3', '足球篮球', '2017-02-04 11:55:14', '1');
INSERT INTO `solrtest` VALUES ('4', '足球篮球羽毛球', '2017-02-04 16:27:41', '1');
3.修改coretest/conf文件夹下的solrconfig.xml文件,增加代码:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
</requestHandler>
4.在同级目录下创建solr-data-config.xml文件,并添加代码:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solrtest"
user="root"
password="root"/> <document name="solr_mysql_test">
<entity name="solrtest" pk="id" query="select * from solrtest"
deltaImportQuery="select * from solrTest where id = '${dih.delta.id}'"
deltaQuery="select id from solrTest where updateTime > '${dataimporter.last_index_time}'"/>
<field column="id" name="id"/>
<field column="context" name="context"/>
<field column="updateTime" name="updateTime"/>
<field column="sort" name="sort"/>
</document>
</dataConfig>
5.在同级目录打开 managed-schema.xml ,在其中增加如下代码。(其中注释掉的name为id的field,是因为managed-schema.xml默认就有id字段,不注释会产生冲突。)
<!-- <field name="id" type="string" required="true" indexed="true" stored="true" multiValued="false"/> -->
<field name="context" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="updateTime" type="date" indexed="true" stored="true" multiValued="false"/>
<field name="sort" type="int" indexed="true" stored="true" multiValued="false"/>
6.将下载的solr-6.2.0/dist文件夹下的jar包复制到WEB-INF/lib下(主要是solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar),将mysql的驱动jar包复制到WEB-INF/lib下。
7.启动tomcat,登陆solr页面,导入数据:打开Dataimport页面,勾选Auto-Refresh Status然后Execute即可。
完成后查询数据:
添加中文分词器 :
1.这里我使用的中文分词器是IKAnalyzer,首先需要到网上下载IKAnalyzer的jar包,我使用的jar包是ik-analyzer-solr5-5.x.jar。
2.把ik-analyzer-solr5-5.x.jar 放到\WEB-INF\lib 中。
3.在managed-schema.xml文件中添加分词器配置。(这里分词器名称是text_ik)
<!-- IKAnalyzer中文分词器.如果版本与solr对应不上,会报抽象方法错误 -->
<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>
4.在managed-schema.xml文件中对某个field使用分词器text_ik:
<field name="context" type="text_ik" indexed="true" stored="true" multiValued="false"/>
完成后查询测试:
其他:
导入数据完成后,tomcat的webapps\solr\solrhome\coretest文件夹下应该会多出文件夹data和配置文件core.properties,其中core.properties记录core的配置信息,solr启动后会查找该文件,用来恢复core,data文件夹记录core的数据信息,用来恢复core的数据,如果没有的话,需要重新import数据。
在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器的更多相关文章
- Eclipse 中构建 Maven 项目的完整过程 - SpringBoot 项目
进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) 一.Maven项目的新建 1.鼠标右键---->New--- ...
- Eclipse中构建maven项目的两种方式
Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...
- solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...
- Windows下面安装和配置Solr 4.9(三)支持中文分词器
首先将下载解压后的solr-4.9.0的目录里面F:\tools\开发工具\Lucene\solr-4.9.0\contrib\analysis-extras\lucene-libs找到lucene- ...
- Eclipse 中构建 Maven 项目的完整过程 - 动态 Web 项目
进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) 一.Maven项目的新建 1.鼠标右键---->New--- ...
- 部署Eclipse中的Web项目到Tomcat服务器运行
用Eclipse开发Web项目时,可以通过Tomcat服务器运行Web项目,此时Web项目被部署在[WorkSpace]\.metadata\.plugins\org.eclipse.wst.serv ...
- Eclipse中的Web项目自动部署到Tomcat
原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...
- [转]Eclipse中的Web项目自动部署到Tomcat
原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...
- 用Maven生成Eclipse中的Web项目
转自:http://my.oschina.net/u/939893/blog/170185 进入workspace, 输入以下命令 mvn archetype:generate -DgroupId= ...
随机推荐
- 利用Python对文件进行批量重命名——以图片文件为例
效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...
- Atitit.导出excel报表的设计与实现java .net php 总结
Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1 ...
- C语言中fgetc函数返回值为什么是int?
学习C语言的,文件操作,大都会用到它. 它的函数原型: 这个函数的返回值,是返回读取的一个字节.如果读到文件末尾返回EOF.EOF其实就是一个宏#define EOF (-1)表示-1.既然返回的是一 ...
- python-class(5)
#!/usr/bin/env python #-*- coding:utf-8 -*- ############################ #File Name: class5.py #Auth ...
- 使用pycharm手动搭建python语言django开发环境 - 使用git管理代码(二)
在pycharm中打开项目,使用File->Version Control->Git.选中git的安装路径并点击确认. 2)在Version Control界面中,配置或新建一个git的主 ...
- c++ [wrong]simple "Garbage Collector"
In fact, Ptr alone can accomplish the task mentioned below. Implementation see Ptr.h, main2.cpp. In ...
- JVM物理结构和在内存中的组织结构
对于JVM自身的物理结构,我们可以从下图鸟瞰一下: JVM内存组成结构 JVM栈由堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以 ...
- 基于C#的超市收银管理系统
基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...
- bootstrap-table接合knockout.js
function responseHandler(data) { if (data.ErrorNo > 0) { return; } var count = data.Data.TotalRow ...
- HDU 5073 Galaxy 2014 Asia AnShan Regional Contest 规律题
推公式 #include <cstdio> #include <cmath> #include <iomanip> #include <iostream> ...