Linux下安装使用Solr
Linux下安装使用Solr
1、首先下载Solr、mmseg4j分词包、tomcat并解压,这用google、百度都可以搜索得到下载地址。
2、因为要使用到中文分词,所以要设置编码,进入tomcat安装目录,使用vi修改confserver.xml配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
增加 URIEncoding="UTF-8"设置编码为utf-8。
3、将下载的solr包下面dist文件夹中的apache-solr-*.war 拷贝到 tomcat的webapps 并且改名为 solr.war
cp /opt/apache-solr-3.6.1/dist/apache-solr-3.6.1.war /opt/apache-tomcat-6.0.35/webapps/solr.war
4、将下载的solr包下面example文件夹中的solr文件拷贝到/opt目录下
cp -r /opt/apache-solr-3.6.1/example/solr/ /opt
5、配置环境变量solr.home,使用vi修改/etc/profile,增加以下代码,配置永久变量,重启reboot
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr"
6、启动tomcat服务,然后访问http://127.0.0.1:8080/solr/
出现如下页面,表示配置成功

7、配置中文分词,将mmseg4j目录下的一个jar包复制到solr/WEB-INF/lib/目录下让solr使用,这里必须先运行一遍才会产生solr文件夹
cp /opt/mmseg4j/mmseg4j-all-1.8.3.jar /opt/apache-tomcat-6.0.35/webapps/solr/WEB-INF/lib/
8、配置中文词库
cp /opt/mmseg4j/data/words.dic /opt/solr/dic/
9、更改schema.xml (/opt/solr/conf/schema.xml) 文件,使分词器起到作用。
<!--mmseg4j field types-->
<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/opt/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType> <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="/opt/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType> <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="/opt/solr/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
10、http://127.0.0.1:8080/solr/admin/analysis.jsp

点击Analyze查看分词效果
11、配置mysql数据库
首先要导入连接mysql的jar包mysql-connector-java-5.1.7-bin.jar
我是放在tomcat的lib目录下
touch /opt/solr/conf/mysql.xml
将下面内容写入mysql.xml中
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://10.10.150.116/travel_main" user="new_travel_u" password="123045"/> <document name="user_core"> <entity name="user_core" query="select * from user_core" pk="userId"
deltaQuery ="select userId from user_core where editTime > '${dataimporter.last_index_time}'">
<field column="userId" name="id" />
<field column="nickname" name="nickname" />
</entity> </document> </dataConfig>
solrconfig.xml的<fields>必须有和数据库字段相对应的子元素,我这里新增了个nickname
<field name="nickname" type="string" indexed="true" stored="true" />
再配置solrconfig.xml文件,在<config>节点下新增一个节点
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/opt/solr/conf/mysql.xml</str>
</lst>
</requestHandler>
再把<lib>标签的路径修改下,不然可能会找不到相应的jar包
<lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-cell-\d.*\.jar" />
<lib dir="/opt/apache-solr-3.6.1/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-clustering-\d.*\.jar" />
<lib dir="/opt/apache-solr-3.6.1/contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />
<lib dir="/opt/apache-solr-3.6.1/contrib/dataimporthandler/lib/" regex=".*\.jar" /> <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-langid-\d.*\.jar" />
<lib dir="/opt/apache-solr-3.6.1/contrib/langid/lib/" regex=".*\.jar" /> <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-velocity-\d.*\.jar" />
<lib dir="/opt/apache-solr-3.6.1/contrib/velocity/lib" regex=".*\.jar" />
12、重启tomcat
/opt/apache-tomcat-6.0.35/bin/shutdown.sh
/opt/apache-tomcat-6.0.35/bin/startup.sh
13、浏览器输入网址
http://127.0.0.1:8080/solr/dataimport?command=full-import
新增全量索引,然后进入
http:// 127.0.0.1:8080/solr/admin/
查询便得出结果
可以定时调度增加增量索引
http:// 127.0.0.1:8080/solr/dataimport?command=delta-import
Linux下安装使用Solr的更多相关文章
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- Linux下安装 Posgresql 并设置基本参数
在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...
- Linux下安装Tomcat服务器和部署Web应用
一.上传Tomcat服务器
- Linux下安装tar.gz类型的jdk,并配置环境变量
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Linux下安装cmake
cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...
- linux下安装安装pcre-8.32
linux下安装安装pcre-8.32 ./configure --prefix=/usr/local/pcre 出现以下错误 configure: error: You need a C++ com ...
- CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)
在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...
- Linux下安装Apache并以mod_wsgi方式部署django站点
源码编译方式安装Apache 首先下载Apache源码压缩包,地址为http://mirror.bit.edu.cn/apache/httpd/ 继续下载apr和apr-util压缩包,地址为http ...
随机推荐
- js+css实现骰子的随机转动
网上找的例子,然后增添了新的东西,在这里展示一下...... 效果图预览: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...
- Web APi之消息处理管道(五)
前言 MVC有一套请求处理的机制,当然Web API也有自己的一套消息处理管道,该消息处理管道贯穿始终都是通过HttpMessageHandler来完成.我们知道请求信息存在 RequestMessa ...
- Android图片选择器
1.概述 应公司项目需求,要做一个图片选择器,网上搜索了一些源码,我在别人的基础上进行了修改,另外页面也进行了重整,我的是先加载图片文件夹列表,然后再进入选择图片. 参考博客地址 ...
- BFC之清除浮动篇&clear
我们在日常代码生活中,或多或少会利用浮动来布局,例如导航布局,如下图所示: 但是,我们在实现的时候,经常会遇到父元素“塌陷”以及清除浮动问题.例如 <!DOCTYPE html> < ...
- 前端工程优化:javascript的优化小结
我觉得优化javascript是一门高深的学问,在这里也只能站在前人的肩膀上,说一些我浅显的认识,更希望的是抛钻引玉,如有不对,敬请斧正. 首先,要认识到是,优化js的关键之处在于,优化它的运行速度 ...
- 窥探Swift之数组与字典
说到数组和字典,只要是编过程的小伙伴并不陌生.在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary.还是沿袭之前的风格,在介绍S ...
- Node.js入门初体验
今天有一个类似网络爬虫的需求,本来打算用我还算熟悉的asp或者asp.NET来做这个事情,但是写了这么长时间js,asp的语法实在不喜欢,VS又早被我卸掉了,思来想去打算用一下最近比较火的Node.j ...
- 几个步骤轻松搞定ASP.NET 依赖注入。
http://www.it165.net/pro/html/201407/17685.html 我在网上看到了这篇文章,这边文章主要说的方法就是通过读取配置文件来解决依赖注入的问题.但是每次新建一个依 ...
- PHP之验证码的实现
简单的用PHP实现验证码: ?php /** *制作验证码 *1.启动session *2.设定标头 *3.创建画布 *4.创建颜色 *5.创建随机数并放到画布上 *6.将得到的若干随机数放入sess ...
- PHP实现实现数字补零格式化
在接支付SDK的时候,第三方回调处理时需要IP,并且IP的需求是:去掉点号,补零到每地址段3位, 如:192168000001 先看看我的实现: <?php $IP = explode ( '. ...