在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= ...
随机推荐
- MVC Controller return 格式之JsonResult、ContentResult、RedirectResult……
//语法 public class JsonResult : ActionResult public class ContentResult : ActionResult public class ...
- HDU5374 Tetris (2015年多校比赛第7场)大模拟
思路: 先写好了几个函数.旋转,四种操作,推断能否够进行合并消除 题中有好几处要考虑的细节问题,如 自然下落究竟部时不进行合并的推断,而是当自然下落非法时才推断 假设消除一行,这一行上面的所以方块仅仅 ...
- 李洪强iOS开发之大神必备的Xcode插件
iOS开发大神必备的Xcode插件 写在前面 工欲善其事,必先利其器,iOS开发中不仅要学会Xcode的基本操作,而且还得学会一些Xcode的使用技巧,如掌握常用的快捷键等,还有就是今天要说到的Xco ...
- centos7+nginx部署asp.net core mvc网站
1. 安装 .net core 可参见官网安装教程. 选择Linux发行版本为Centos/Oracle 添加dotnet的yum仓库配置 $ sudo rpm -Uvh https://packag ...
- Linux 文件管理(系统函数)
//read函数 #include <stdio.h> #include <stdlib.h> #include <unistd.h> /* STDIN_FILEN ...
- 嵌入式开发之davinci--- 8148/8168/8127 中的音频alsa 采集
1.snd_pcm_open,打开句柄. 2.配置参数,可能用到的接口:snd_pcm_hw_params_alloca.snd_pcm_hw_params_any.snd_pcm_hw_params ...
- git 显示多个url地址推送
前提 一般来说,我们为git增加远程库,一般都是git remote add origin <url> ( 你可以使用真实的地址来代替 \<url\> ) 但是你可能想要把你的 ...
- YOLO2解读,训练自己的数据及相关转载以供学习
https://pjreddie.com/darknet/yolo/ 具体安装及使用可以参考官方文档https://github.com/pjreddie/darknet https://blog.c ...
- 一套一般般的前端框架 layui
http://www.layui.com/doc/
- Mongo同步数据到Elasticsearch
个人博客:https://blog.sharedata.info/ 最近需要把数据从Mongo同步到Elasticsearch环境:centos6.5python2.7pipmongo-connect ...