最近在研究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+添加中文分词器的更多相关文章

  1. Eclipse 中构建 Maven 项目的完整过程 - SpringBoot 项目

    进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) 一.Maven项目的新建 1.鼠标右键---->New--- ...

  2. Eclipse中构建maven项目的两种方式

    Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...

  3. solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)

    基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...

  4. Windows下面安装和配置Solr 4.9(三)支持中文分词器

    首先将下载解压后的solr-4.9.0的目录里面F:\tools\开发工具\Lucene\solr-4.9.0\contrib\analysis-extras\lucene-libs找到lucene- ...

  5. Eclipse 中构建 Maven 项目的完整过程 - 动态 Web 项目

    进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) 一.Maven项目的新建 1.鼠标右键---->New--- ...

  6. 部署Eclipse中的Web项目到Tomcat服务器运行

    用Eclipse开发Web项目时,可以通过Tomcat服务器运行Web项目,此时Web项目被部署在[WorkSpace]\.metadata\.plugins\org.eclipse.wst.serv ...

  7. Eclipse中的Web项目自动部署到Tomcat

    原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写博客,现在感觉还是很有必要的,编程中每个人对于犯过的错误 ...

  8. [转]Eclipse中的Web项目自动部署到Tomcat

    原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...

  9. 用Maven生成Eclipse中的Web项目

    转自:http://my.oschina.net/u/939893/blog/170185 进入workspace, 输入以下命令 mvn archetype:generate -DgroupId=  ...

随机推荐

  1. &lt;LeetCode OJ&gt; 26 / 264 / 313 Ugly Number (I / II / III)

    Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...

  2. 使用maven结合requirejs管理前端脚本

    已有的web项目,一直使用Maven做工程管理,现阶段前端调整为使用requirejs来负责模块加载依赖,同时使用jasmine来完成前端的UT. 便与在maven下统一管理,简单整理了下合在一起的使 ...

  3. SpringBoot支持https和http

    1.application.propertites #server.port=8081 server.port: 8443 server.ssl.key-store: classpath:keysto ...

  4. code::blocks怎么设置命令行参数

    Project->Set Program's Arguments...然后在相应的输入框中输入命令行参数

  5. 从C#到Swift,Swift学习笔记

    最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下 ...

  6. Java并发编程(十三)在现有的线程安全类中添加功能

    重用现有的类而不是创建新的类,可以降低工作量,开发风险以及维护成本. 有时候线程安全类可以支持我们所有的操作,但更多时候,现有的了类只能支持大部分的操作,此时就需要在不破坏线程安全性的情况下添加一个新 ...

  7. FreeBSD中实现root的ssh

    在虚拟机中刚装好FreeBSD,结果不能以远程方式登录root,然后在如下链接中找到了解决方法: http://blog.chinaunix.net/uid-26719405-id-3822697.h ...

  8. 个人博客开发之 xadmin 安装

    项目源码下载:http://download.vhosts.cn xadmin 下载地址:https://github.com/sshwsfc/xadmin或 https://github.com/s ...

  9. Consul实现原理系列文章2: 用Gossip来做集群成员管理和消息广播

    工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.这篇文章会讲述Consul是如何使用Gossip来做集群成员管理和消息广播的. Consul使用Go ...

  10. Easyui Form增加myLoad方法,使其支持二级数据对象

    $.extend($.fn.form.methods, { myLoad : function (jq, param) { return jq.each(function () { load(this ...