搜索引擎——Solr安装、配置
什么是solr?
Solr是如何实现全文检索的呢?
索引流程:solr客户端(浏览器、java程序)可以向solr服务端发送POST请求,请求内容是包含Field等信息的一个xml文档,通过该文档,solr实现对索引的维护(增删改)
搜索流程:solr客户端(浏览器、java程序)可以向solr服务端发送GET请求,solr服务器返回一个xml文档。
Solr和lucene的区别:
① Lucene是一个全文检索引擎工具包。
② Solr是一个全文检索服务器,Solr比lucene在开发全文检索功能时,更快捷、更方便。Solr提供了更多的查询语句,而且它可扩展、可配置,同时对lucene的性能进行了优化。
Solr安装配置
下载地址:http://archive.apache.org/dist/lucene/solr/
使用版本:5.5.4
运行环境
JDK:1.7及以上
Tomcat:tomcat7及以上
Solr部署Tomcat
第一步:将server/solr-webapp/webapp文件夹复制到tomcat webapps下重命名为solr
solr:
tomcat:
第二步:复制log日志jar包
所在位置:
将solr-5.5.4/server/resources/log4j.properties复制到solr-server/webapps/solr/WEB-INF/classes 如果classes文件夹不存在手动创建
Solr-home创建:
第一步:创建solrhome目录,可以放到任意目录下,这里放到tomcat/webapps/solr项目下
第二步:复制Solr-home配置文件到第一步创建的目录下
第三步:配置solr应用的web.xml配置文件
将划线部分修改为真实solrhome的目录
<font color=red>解决solr6.0以上版本tomcat HTTP Status 403 - Access to the requested resource has been denied</font>
注释掉solr应用web.xml中
<security-constraint>...</security-constraint>
里面的内容即可。
<font color=red>Tomcat配置文件server.xml配置上下文环境</font>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context docBase="solr" path="/solr"/>
</Host>
到这里Solr的部署已经完成,可以启动Tomcat。
solr-core配置
第一步:复制solr-5.5.4/example/example-DIH/solr到solr-home目录下重命名为core1
Solr:
Tomcat:
第二步:将solr扩展程序包中的solr-dataimporthandler-5.5.4.jar、solr-dataimporthandler-extras-5.5.4.jar复制到Solr应用WEB-INF/lib目录下
重启Tomcat
Solr控制台:
中文分词器配置
中文分词器大概有10几种,包括word分词器、Stanford分词器、Ansj分词器、HanLP分词器、smartcn分词器、FudanNLP分词器、Jieba分词器、Jcseg分词器、MMSeg4j分词器、IKAnalyzer分词器等...
IKAnalyzer分词器的配置
IKAnalyzer5.0下载地址:http://download.csdn.net/download/qq_31105311/10263740
所需配置文件和jar包
第一步:将ext.dic、IKAnalyzer.cfg.xml、stopword.dic复制到Solr应用的WEB-INF/classes目录下
第二步:将IKAnalyzer-5.0.jar复制到Solr应用的WEB-INF/lib目录下
第三步:配置managed-scheme,位于solr_home/core1/conf目录下
配置中文分词FieldType、Field
重启Tomcat。
到此所有配置安装已完成。后续会分享Solr、Lucene核心API使用。
以上属于原创文章,转载请注明作者@怪咖
QQ:208275451