Solr单机环境搭建及部署
一、定义
官网的定义:
Solr是基于Lucene构建的流行,快速,开放源代码的企业搜索平台。它具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自动故障转移和恢复,集中式配置等。 Solr支持许多世界上最大的互联网站点的搜索和导航功能。
简单的理解solr就是一款搜索框架,通常用实现查询功能,比如电商网站的商品检索。
二、环境搭建
本文基于以下开源组件版本搭建,约定下载后组件和解压缩的文件都放置在/opt目录下:
solr-8.2.0
apache-tomcat-8.5.47
首先下载solr-8.2.0.tgz,可以使用wget命令:
wget http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.tgz
解压缩:
tar -zxvf solr-8.2.0.tgz -C .
解压后,/opt目录下会多一个solr-8.2.0目录
下载apache-tomcat-8.5.47:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.tar.gz
解压缩:
tar -zxvf apache-tomcat-8.5.47.tar.gz
为了将solr部署到tomcat服务器,不使用solr自带的jetty,首先在/opt目录下创建一个目录用于部署solr服务,名称无限制,这里取名solr了。
mkdir solr
复制一份tomcat到/opt/solr目录下,重命名为tomcat8
cp -r apache-tomcat-8.5.47 solr/tomcat8
solr本质是一个web服务,我们将它复制到tomcat8下:
cp -r solr-8.2.0/server/solr-webapp/webapp solr/tomcat8/webapps/solr
复制solr-8.2.0/server/lib/ext下的部分jar到solr目录中,为了简便可以完全复制所有的,然后忽略掉disruptor-3.4.2.jar
cp solr-8.2.0/server/lib/ext/* solr/tomcat8/webapps/solr/WEB-INF/lib/
复制solr-8.2.0/server/lib下以metrics开头的jar到solr目录:
cp solr-8.2.0/server/lib/metrics* solr/tomcat8/webapps/solr/WEB-INF/lib/
上面这两项注意是复制到solr服务的lib目录下,不是复制到tomcat8/lib下。
复制solr-8.2.0/server/resources下的log4j*.xml文件到solr
首先在solr创建classes目录:
mkdir solr/tomcat8/webapps/solr/WEB-INF/classes
复制日志配置文件:
cp solr-8.2.0/server/resources/log4j2*.xml solr/tomcat8/webapps/solr/WEB-INF/classes/
将solr-8.2.0/server/solr目录复制到solr/目录下,并重命名为solrhome:
cp -r solr-8.2.0/server/solr solr/solrhome
修改日志路径
vim solr/tomcat8/webapps/solr/WEB-INF/classes/log4j2.xml
指定fileName和filePattern的路径:
<RollingRandomAccessFile
name="MainLogFile"
fileName="/opt/solr/solrhome/log/solr.log"
filePattern="/opt/solr/solrhome/log/solr.log.%i" >
<PatternLayout>
....
关联solr及solrhome
修改solr里的web.xml文件
vim solr/tomcat8/webapps/solr/WEB-INF/web.xml
web.xml中<web-app></web-app>标签内添加如下配置,指定sorlhome路径
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
注释掉下方的下列配置:
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint>
-->
最后启动tomcat,访问服务器的solr服务:
sh solr/tomcat8/bin/start.sh
访问地址:
localhost:8080/solr/index.html
三、配置IK分词器
首先从IK分词器下载与solr版本匹配的jar包,并放置在solr服务的lib目录下,
cp ik-analyzer-8.2.0.jar solr/tomcat8/webapps/solr/WEB-INF/lib/
在solr/solrhome/下创建目录test_core,拷贝配置文件到test_core中:
cp -r solr/solrhome/configsets/sample_techproducts_configs/conf/ solr/solrhome/test_core/
修改conf中的solr.xml文件,修改jar路径:
<lib dir="${solr.install.dir:../}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:../}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-ltr-\d.*\.jar" />
<lib dir="${solr.install.dir:../}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../}/dist/" regex="solr-velocity-\d.*\.jar" />
修改managed-schema文件,添加ik分词器配置:
<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
重启solr服务,打开管理界面,添加test_core:

打开管理界面,分词示例:

Solr单机环境搭建及部署的更多相关文章
- Kafka 0.7.2 单机环境搭建
Kafka 0.7.2 单机环境搭建当下载完Kafka后,进行解压,其目录结构如下: bin config contrib core DISCLAIMER examples lib lib_manag ...
- Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建
Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...
- windows7 spark单机环境搭建及pycharm访问spark
windows7 spark单机环境搭建 follow this link how to run apache spark on windows7 pycharm 访问本机 spark 安装py4j ...
- [转载] Hadoop和Hive单机环境搭建
转载自http://blog.csdn.net/yfkiss/article/details/7715476和http://blog.csdn.net/yfkiss/article/details/7 ...
- 2-1 RHEL6.5 环境搭建与部署
第二部分:Linux常见服务管理 2-1 RHEL6.5 环境搭建与部署 第二部分主要讲解的是开源服务搭建 学习方法与注意事项: 1. 端正态度,开始学习 2. 认真完成作业和实验(并详细记录) 3. ...
- kafka单机环境搭建及其基本使用
最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...
- solr单机环境配置并包含外部单机zookeeper
首先和之前一样下载solr-5.3.1.tgz,然后执行下面命令释放文件并放置在/usr/目录下: $ .tgz $ /usr/ $ cd /usr/solr- 这个时候先不用启动solr,因为单机模 ...
- Mac系统STF自动化环境搭建及部署踩坑记录
因为公司需要寻找一个免root的自动化测试方案,所以以前做的老方案需要被替代.一阵搜寻找到了这个框架,但是部署起来很是折腾,搞了一下午终于搞定,顺便记录一下过程,有需要的自取. 转载请注明出处:htt ...
- HBase单机环境搭建
在搭建HBase单机环境之前,首先你要保证你已经搭建好Java环境: $ java -version java version "1.8.0_51" Java(TM) SE Run ...
随机推荐
- 杭州集训Day4
别问我为什么没有前三天,有时间再补~ 60+60+50=170. T1 . 坐等 memset0 ( 1s 256MB )( 原题:洛谷CF1151E Number of Components ) 树 ...
- nrm安装与配置
nrm安装与配置:https://blog.csdn.net/anway12138/article/details/79455224
- java基础语法详细介绍
一.概述 1.java语言概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言; java之父---James Goslin ...
- Linux命令学习(0)
作为一名前端,可能接触到linux的机会并不多,但这不代表就不需要学.对我而言,学习linux主要是为了方便部署我的项目到服务器,我并没有花时间去学这些,只是上网查怎么部署项目,然后按教程一步一步来, ...
- [多校联考2019(Round 5 T2)]蓝精灵的请求(二分图染色+背包)
[多校联考2019(Round 5)]蓝精灵的请求(二分图染色+背包) 题面 在山的那边海的那边住着 n 个蓝精灵,这 n 个蓝精灵之间有 m 对好友关系,现在蓝精灵们想要玩一个团队竞技游戏,需要分为 ...
- 8. golang 基本类型转换
golang 类型转换只能显性转换 不能自动转换 基本数据类型间的转换 var x1 int = 2 var x2 int16 var x3 int8 x2 = 200 + x1 x3 = 200 + ...
- linux:shell脚本格式
shell脚本格式: #!/bin/bash //第一行指定bash 命令群..... 例子: #!/bin/bash DESCDIR='/tmp/t ...
- some problem
CF1257F Make Them Similar $solution:$ 折半搜索后考虑如何维护两个数组的和,可以将 $A$ 中每个数减 $A_1$ ,$B$ 中每个数被减 $B_1$ ,$map$ ...
- [CodePlus 2018 3 月赛] 博弈论与概率统计
link 题意简述 小 $A$ 与小 $B$ 在玩游戏,已知小 $A$ 赢 $n$ 局,小 $B$ 赢 $m$ 局,没有平局情况,且赢加一分,输减一分,而若只有 $0$ 分仍输不扣分. 已知小 $A$ ...
- 剑指offer-链表中环的入口结点-链表-python ***
题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 思路 第一步,用两个快慢指针找环中相汇点.分别用slow, fast指向链表头部,slow每次走一步,fast每次 ...