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的更多相关文章

  1. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

  2. Linux下安装 Posgresql 并设置基本参数

    在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...

  3. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  4. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  5. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  6. Linux下安装cmake

    cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...

  7. linux下安装安装pcre-8.32

    linux下安装安装pcre-8.32 ./configure --prefix=/usr/local/pcre 出现以下错误 configure: error: You need a C++ com ...

  8. CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)

    在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...

  9. Linux下安装Apache并以mod_wsgi方式部署django站点

    源码编译方式安装Apache 首先下载Apache源码压缩包,地址为http://mirror.bit.edu.cn/apache/httpd/ 继续下载apr和apr-util压缩包,地址为http ...

随机推荐

  1. android模拟器默认位置的修改

    1.创建ANDROID_SDK_HOME环境变量,如ANDROID_SDK_HOME=D:\eclipse_android\android-sdk 2.在ANDROID_SDK_HOME目录下,建立. ...

  2. [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证

    很多情况下目标Action方法都要求在一个安全上下文中被执行,这里所谓的安全上下文主要指的是当前请求者是一个经过授权的用户.授权的本质就是让用户在他许可的权限范围内做他能够做的事情,授权的前提是请求者 ...

  3. floating IP 原理分析 - 每天5分钟玩转 OpenStack(107)

    上一节我们通过 Web UI 创建为 cirros-vm3 分配了浮动 IP,今天将分析其工作原理. 首先查看 router 的 interface 配置: 可以看到,floating IP 已经配置 ...

  4. 如何部署Icinga服务端

    Icinga是Nagios的一个变种,配置,使用方式几乎一样,而且完全兼容Nagios的插件.所以下面的部署方案对Nagios同样使用. 它还推出了两个中文版本,icinga-cn原版和icinga- ...

  5. 原生JS实现jquery的链式编程。

    这是我根据之前遇到的一个面试题,题目:用原生JS实现$("#ct").on("click",fn).attr("id"). 然后看了篇jqu ...

  6. 表空间基于时间点的恢复(TSPITR)

    环境:RHEL 6.4 + Oracle 11.2.0.4 准备模拟环境 1. 验证表空间的依赖性 2. 确定执行TSPITR后会丢失的对象 3. 自动执行TSPITR Reference 准备模拟环 ...

  7. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  8. Linux服务器(Ubuntu14.04)添加远程连接VNC Server

    1.打开终端输入:sudo apt-get install xrdp,   2. sudo apt-get install vnc4server ,  3. sudo apt-get install ...

  9. Java多线程学习笔记

    进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...

  10. TF-IDF提取行业关键词

    1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...