solr介绍html
1、Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。 2、Solr 提供了层面搜索(就是统计)、命中醒目显示而且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,并且附带了一个基于 HTTP 的 管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。 3、Solr 包装并扩展了 Lucene,因此Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 建立的索引与 Lucene 搜索引擎库彻底兼容。 4、经过对Solr 进行适当的配置,某些状况下可能须要进行编码,Solr 能够阅读和使用构建到其余 Lucene 应用程序中的索引。 5、此外,不少 Lucene 工具(如Nutch、 Luke)也可使用Solr 建立的索引。可使用 Solr 的表现优异的基本搜索功能,也能够对它进行扩展从而知足企业的须要。java
准备工做:一、关闭防火墙,二、安装jdk1.8环境。三、建立生产环境下的目录/data/soft /,全部安装包都放在/data/下进行操做,产生的环境都放在/data/soft下面。web
一、查看防火墙状态:apache
firewall-cmd --state
若是是开启状态那么关闭掉就好了。vim
systemctl stop firewalld.service
二、作以前的准备:jdk环境必定要是jdk1.8,centos7的话好像最低都是jdk1.8的,个人作实验前查了一下是jdk1.8的,因此就不在继续作jdk最新版本的了。centos
在这里不作说明,若是不会请参考我专门作的关于jdk环境的博客.浏览器
三、建立安装目录tomcat
mkdir -p /data/soft
前三步作好后就直接开始作solr搜索服务器了。服务器
正式开始:网络
1.下载solr7.2版本,解压
wget http://mirrors.shuosc.org/apache/lucene/solr/7.2.1/solr-7.2.1.tgz tar -xvf solr-7.2.1.tgz
3.下载tomcat,解压并测试tomcat是否异常,这步很重要,有的tomcat版本有冲突就会发生异常。
wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz tar -xvf apache-tomcat-9.0.6.tar.gz mv apache-tomcat-9.0.6 tomcat
对tomcat测试一下,看tomcat是否正常
启动tomcat:sh bin/startup.sh
查看端口是被监听
查看服务是否启动,生产环境会用这种方式查看。
查看tomcat日志:
生产环境最直接的检查方式。直接curl命令查看是否可以获取tomcat页面。
开始部署配置solr
1.把solr-7.2.0/server/solr-webapp里面的webapp拷贝到tomcat 的webapps下,重命名为solr
cp -r solr-7.2.1/server/solr-webapp/webapp/ /data/soft/tomcat/webapps/ mv webapp/ solr
2.拷贝solr-7.2.1\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar,以metrics开头的jar包拷贝到 tomcat\webapps\solr 项目的WEB-INF\lib下
cd solr-7.2.1/server/lib/ext/ cp * /data/soft/tomcat/webapps/solr/WEB-INF/lib/ cp gmetric4j-1.0.7.jar metrics-* /data/soft/tomcat/webapps/solr/WEB-INF/lib/
3.拷贝solr-7.2.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是创建到了/data/soft下
cd solr-7.2.1/server/ cp -r solr /data/soft/solrhome
4.修改/data/soft/tomcat/webapps/solr/WEB-INF\web.xml, 找到以下代码,蓝色部分的,/put/your/solr/home/here 改成你本身的solrhome的路径,个人是/data/soft/solrhome路径。
vim /data/soft/tomcat/webapps/solr/WEB-INF/web.xml,将注释去掉,并将solrhome的目录位置写进去:
<!-- <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> -->
以下图:
5..拷贝solr7.2.1\server\resources下的log4j.properties到/data/soft/tomcat/webapps/solr/WEB-INF\classes,若是WEB-INF下没有classes文件那么就建立一个classes文件夹
mkdir -p /data/soft/tomcat/webapps/solr/WEB-INF/classes cp solr-7.2.1/server/resources/log4j.properties /data/soft/tomcat/webapps/solr/WEB-INF/classes/
6.启动tomcat,访问须要完整路径,个人是http://192.168.241.131:8080/solr/index.html#/
看下日志,若是日志有下面这个样式就成功了。
在本机上curl一下,发现403,那么估计页面也是这样,以下图。
7.注意:若是出现上图403错误,编辑web.xml照片截图中位置,找到以下代码,将其注释便可。
加上注释以下图:
再次刷新浏览器,会出现下图的页面。
2.报错,提示缺乏配置文件:Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/data/soft/solrhome/new_core'
解决方法:拷贝server/solr/configsets/_default/下的conf文件夹到solrhome/new_core文件夹下
cp -r solr-7.2.1/server/solr/configsets/_default/conf /data/soft/solrhome/new_core/
3.点击Add Core,此时会显示添加成功。
四、配置中文分析器
cp solr-7.2.1/dist/solr-dataimporthandler-7.2.1.jar /data/soft/tomcat/webapps/solr/WEB-INF/lib/
2.拷贝lucene-libs文件夹里的中文分析器的jar包
cp solr-7.2.1/contrib//analysis-extras/lucene-libs/* /data/soft/tomcat/webapps/solr/WEB-INF/lib/
vim solrhome/new_core/conf/managed-schema <!-- ChineseAnalyzer --> <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> </fieldType>
以下图:
4.自定义搜索业务域
<field name="item_title" type="text_ik" indexed="true" stored="true"/> <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/> <field name="item_price" type="plong" indexed="true" stored="true"/> <field name="item_image" type="string" indexed="false" stored="true" /> <field name="item_category_name" type="string" indexed="true" stored="true" /> <field name="item_desc" type="text_ik" indexed="true" stored="false" /> <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/> <copyField source="item_title" dest="item_keywords"/> <copyField source="item_sell_point" dest="item_keywords"/> <copyField source="item_category_name" dest="item_keywords"/> <copyField source="item_desc" dest="item_keywords"/>
以下图:
5.重启tomcat,就能发现自定义域已经出现
6.测试分词效果
好了,到此为止,solr就告一段落,咱们在部署的时候,心必定要细,有的地方千万仔细,进过这两天的熟悉给公司的阿里云服务器作这个,借签网络各位大神的手笔,写的不足之处,请你们多多关照。