Linux/Centos/windows集成tomcat和Solr并进行全文检索
来源:互联网 发布:java.util.calendar 编辑:程序博客网 时间:2024/05/18 21:05
Linux/Centos/windows安装Solr并进行全文检索
本文主要是以Linux和centos系统为例,但是在window上也是同样的操作,亲测有效。
使用软件版本号:
- solr版本:solr 6.6.1
- JDK版本:jdk1.8.0_144
- tomcat版本:tomcat 8.5.20
下载必须安装包
JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Solr下载地址:http://mirror.bit.edu.cn/apache/lucene/solr/6.6.1/
Tomcat下载地址:http://mirror.bit.edu.cn/apache/lucene/solr/6.6.1/
安装JDK
1、本地下载JDK后,上传至服务器并解压(其中/java是自己设置存放JDK的路径):
$ scp jdk-8u144-linux-x64.tar.gz root@serverhost:/java$ tar –zxvf jdk-8u144-linux-x64.tar.gz
2、配置环境:
$ vim /etc/profile
在文件最后加入如下内容(其中JAVA_HOME是jdk存放的位置):
export JAVA_HOME=/java/jdk1.8.0_144export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH
安装tomcat
1、本地下载tomcat后,上传服务器并解压(其中serverhost为服务器IP地址)
将solr和tomcat压缩包上传至服务器后,进行解压,解压目录为当前目录。solr_dir是存放tomcat和solr的文件,用户可以自行定义。
$ scp ~./solr-6.6.1.tgz root@serverlhost:/solr-dir$ scp ~./apache-tomcat-8.5.20.zip root@serverhost:/solr-dir$ tar –zxvf solr-6.6.1.tgz$ unzip apache-tomcat-8.5.20.zip
解压之后如图所示:
2、修改tomcat默认端口号(此处修改为8090,tomcat默认端口为8080)
进入【apache-tomcat-8.5.20/conf】目录,在server.xml中,找到如下代码:
将其中的8080修改为8090.
配置文件(核心部分)
1、将【/solr_dir /solr-6.6.1/server/solr-webapp】下的webapp文件拷贝到【/solr_dir/apache-tomcat-8.5.20/webapps】目录下,并将webapp重命名为solr。
# 进入【/solr_dir/apache-tomcat-8.5.20/webapps】目录下,进行如下命令。$ cp -r /solr_dir/solr-6.6.1/server/solr-webapp/webapp /solr_dir/apache-tomcat-8.5.20/webapps/$ mv webapp solr
2、将【\solr_dir \solr-6.6.1\server\lib\ext】下的所有jar包,以及【\solr_dir \solr-6.6.1\server\lib】下以metrics开头的jar包复制到【\solr_dir \apache-tomcat-8.5.20\webapps\solr\WEB-INF\lib】下。
$ cp -r /solr_dir/solr-6.6.1/server/lib/ext/*.jar /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/$ cp -r /solr_dir/solr-6.6.1/server/lib/metrics-*.jar /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/
3、将【\solr_dir \solr-6.6.1\dist】文件夹下的solr-dataimporthandler-6.3.0.jar和solr-dataimporthandler-extras-6.3.0.jar两个jar包复制到【\solr_dir \apache-tomcat-8.5.20\webapps\solr\WEB-INF\lib】文件夹下;
$ cp /solr_dir/solr-6.6.1/dist/solr-dataimporthandler-*.jar /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/
4、将【\solr_dir \solr-6.6.1\server\resources】下的log4j.properties配置文件拷贝到【\solr_dir \apache-tomcat-8.5.20\webapps\solr\WEB-INF\classes】,如果WEB-INF下没有classes文件那么就创建一个classes文件夹。
$ mkdir classes$ cp /solr_dir/solr-6.6.1/server/resources/log4j.properties /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/classes
5、在【\solr_dir \apache-tomcat-8.5.20】下新建一个文件【solrhome(文件夹名称可以任意命名)】,将【\solr_dir \solr-6.6.1\server\solr】下的所有文件拷贝到刚刚创建的【solrhome】目录下;
$ cp -r /solr_dir/solr-6.6.1/server/solr/* /solr_dir/apache-tomcat-8.5.20/solrhome/
6、在目录【\solr_dir \apache-tomcat-8.5.20\webapps\solr\WEB-INF】下的web.xml文件中找到如下代码:
默认是注释掉的,将该注释去掉。将其中’env-entry-value’中的值更改为前文新建文件夹【solrhome】所在目录。此处更改为:/solr_dir/apache-tomcat-8.5.20/solrhome/。【根据自己实际目录更改即可】.如图所示:
7、将目录【/solr_dir /apache-tomcat-8.5.20/webapps/solr/WEB-INF】下的web.xml文件中的以下代码注释掉。下面的代码是注释状态,默认是未注释状态。
至此,配置完全结束。
8、进入【/solr_dir/apache-tomcat-8.5.20/bin】目录:
进入【/solr_dir/apache-tomcat-8.5.20/bin】目录:
$ ./startup.sh
若启动失败,则重复检查。若,启动时,提示权限不够,则执行一下命令:
$ chmod 744 startup.sh shutdown.sh catalina.sh daemon.sh digest.sh setclasspath.sh tool-wrapper.sh version.sh
在浏览器中输入http://serverhost:8090/solr/index.html
【注意】需要在服务器上设置外网链接端口号开放。
solr的WEB UI界面如图所示:
数据导入
添加core
在上文中solrhome目录下新建文件夹mycore,将【/solr_dir/solr-6.6.1/example/example-DIH/solr/solr】下所有文件复制到刚刚创建的msycore目录下;
cp -r /solr_dir/solr-6.6.1/example/example-DIH/solr/solr/* /solr_dir/apache-tomcat-8.5.20/solrhome/mycore/
重启tomcat。
进入Solr的WebUI,点击左侧的Core Admin,即可以看到添加的索引“mycord”。如图所示:
配置IKAnalyzer的中文分词
IK Analyzer分词器下载:https://pan.baidu.com/s/1i4VXWln
1、下载完成后,将压缩包上传至服务器中的【/solr_dir】目录下。
$ scp ~./ikanalyzer-solr6.5.ziproot@serverlhost:/solr-dir
2、解压至当前文件夹:
$ unzip ikanalyzer-solr6.5.zip
3、IK分词器中有四个文件,ext.dic为扩展字典,stopword.dic为停止词字典,IKAnalyzer.cfg.xml为配置文件,solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar为分词jar包。
4、将文件夹下的IKAnalyzer.cfg.xml , ext.dic和stopword.dic 三个文件 复制到【/solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/classes/】 目录下。
$ cp /solr_dir/ikanalyzer-solr5/IKAnalyzer.cfg.xml ext.dic stopword.dic /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/classes/
5、将文件夹下的solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar 到/solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/】目录下
$ cp /solr_dir/ikanalyzer-solr5/ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/
6 、配置文件jar包
6.1、将【/solr_dir/solr-6.6.1/contrib/extraction/lib】目录下的所有.jar包复制到【/solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib】下。
$ cp /solr_dir/solr-6.6.1/contrib/extraction/lib/*.jar /solr_dir/apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib/
6.2、在【/solr_dir/apache-tomcat-8.5.20/solrhome/mycore/conf】目录下新建tika-data-config.xml,在该文件中添加如下内容:
<dataConfig> <script><![CDATA[ id = 1; function GenerateId(row) { row.put('id', (id ++).toFixed()); return row; } function WipOffHtml(row) { var file = row.get('file'); row.put('file',file.substr(0,file.indexOf('.'))); return row; } ]]> </script> <dataSource type="BinFileDataSource" /> <document> <entity name="files" dataSource="binary" rootEntity="false" processor="FileListEntityProcessor" baseDir="/solr_dir/txtbooks " fileName=".*.(doc)|(pdf)|(xls)|(ppt)|(docx)" recursive="true"> <field column="fileAbsolutePath" name="filePath" /> <field column="fileSize" name="size" /> <field column="fileLastModified" name="lastModified" /> <entity name="documentImport" processor="TikaEntityProcessor" url="${files.fileAbsolutePath}" format="text" transformer="HTMLStripTransformer,RegexTransformer,script:GenerateId"> <field column="file" name="fileName"/> <field column="id" name="id" /> <field column="Author" name="author" meta="true"/> <field column="title" name="title" meta="true"/> <field column="text" name="text" stripHTML="true" regex="\t|\r|\n|\s" replaceWith="" /> </entity> </entity> </document> </dataConfig>
注意:baseDir=”/solr_dir/txtbooks ” fileName=”.*.(doc)|(pdf)|(xls)|(ppt)|(docx)” 其中”/solr_dir/txtbooks “为solr数据源。
6.3、在【/solr_dir /apache-tomcat-8.5.20/solrhome/mycore/conf】目录下修改solrconfig.xml文件,在文件最后添加下列内容:
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">tika-data-config.xml</str> </lst> </requestHandler>
6.4、在【/solr_dir/apache-tomcat-8.5.20/solrhome/mycore/conf】下的 managed-schema文件最后添加如下内容:
<!--IKAnalyzer中文分词配置--><fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/> </analyzer></fieldType>
并找到如下图所示的标签,进行修改。【注意:name=”text”的type必须要修改成text_ik,与IK分词器一致,否则会报错】
至此IK分词器配置完成。
上传数据源
1、将数据上传至前文设置的数据源路径中。此处是/solr_dir/txtbooks,其中,textbooks是本地按照文章段落分好的句子。
2、如图dataimport中,Entity选择files,然后执行Excuse,将数据源导入。然后可以进行检索。
然后进行查询时,可以正确查询了,
最后,在python代码中进行调用的时候,需要将路径改为“mycore”即可。
至此。整个Solr集成tomcat进行全文检索配置完成,并进行了手动添加数据源。
- Linux/Centos/windows集成tomcat和Solr并进行全文检索
- windows环境下solr部署到tomcat,全文检索
- windows环境下solr部署到tomcat,全文检索
- 全文检索Lucene和Solr简介
- 全文检索之Lucene和Solr
- Solr全文检索介绍
- 全文检索技术--solr
- 全文检索solr
- 网站全文检索--Solr
- solr中文全文检索
- solr 全文检索服务器
- 全文检索技术---solr
- solr全文检索
- 基于Lucene的全文检索 solr 简介和搭建
- 使用solr搭建全文检索
- 全文检索引擎Solr系列
- Apache solr 全文检索引擎
- 全文检索技术—Solr
- XML学习总结
- 关于SSH框架的完整配置
- jsp的学习重点
- ccf-最大波动
- 网易互娱2018校招游戏研发工程师在线笔试
- Linux/Centos/windows集成tomcat和Solr并进行全文检索
- leetcode---minimum-path-sum---dp
- spring-boot-build-项目pom结构boot(1.5.6) 学习笔记
- Revit中的dynamo编程——code block
- hihocoder 1174 拓扑排序·一
- 《统计学习方法》笔记三
- ccf I’m stuck!
- Ubuntu16.04-x64安装caffe(仅CPU)并测试
- 学习笔记(二)