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 ...
随机推荐
- bootstrap 学习
<!DOCTYPE html> <html> <head> <title>Bootstrap</title> <meta name=& ...
- MVC实用架构设计(三)——EF-Code First(4):数据查询
前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...
- PC网站CSS分享
这里想总结些编写网页的经验,以PC端的为主,前面总结过后台的,今天写些前台的,参考了bootstrap3.3.5.bootstrip2.3.2和模版matrix. 前段时间还写过一篇<前端基础学 ...
- 总结Oracle删除表空间遇到的问题
问题1:删除表空间期间遭遇报错 ORA-29857 问题2:删除表空间期间遭遇 ORA-02429 问题3:表空间删除完毕,主机磁盘空间不释放 问题1:删除表空间期间遭遇报错 ORA-29857 删除 ...
- WebGIS中基于AGS的画圆查询简析以及通过Polygon来构造圆的算法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 某个项目需求中需要在前端进行画圆查询,将圆范围上的多边形要素 ...
- 【JavaScript】又一神器框架:linq.js
引言 前几天针对一个js数组交集的问题请教了下同事,他第一反应就是循环,这也是常规思路,因为我个人更倾向于js些,我便开玩笑,不知道js能不能像linq那样实现这些操作呢?果断百度了一把,果然有现成框 ...
- C#异常处理的几个原则
转载来自:http://www.oecp.cn/hi/LiuBP/blog/2312 在开发应用程序的时候,异常处理是非常的重要的,我找到一些异常处理准则,将它共享出来,如有不同意见,欢迎提出来一起探 ...
- 小白Linux入门 三
环境变量 shell 变量: 内存空间 ,命名的内存空间 echo $SHELL 其中SHELL是变量 里面是/bin/bash sudo su 进入root printenv 命令 命令: 内部命 ...
- 30分钟?不需要,轻松读懂IL
先说说学IL有什么用,有人可能觉得这玩意平常写代码又用不上,学了有个卵用.到底有没有卵用呢,暂且也不说什么学了可以看看一些语法糖的实现,或对.net理解更深一点这些虚头巴脑的东西.最重要的理由就是一个 ...
- Ionic Lab下载地址
网站被墙,留下下载链接备用 Linux版本 Mac版本 Windows版本