前提:配置好运行环境
solr 需要运行在一个Servlet容器中,要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本文使用Tocmat8作为Servlet容器,Solr版本为6.3.0。
在Tomcat中部署Solr
1,将solr-6.3.0\server\solr-webapp中的webapp拷贝到tomcat的webapps目录下并将webapp重命名为solr(可以重命名为取任意名称)。
2,将solr-6.3.0\server\lib\ext中的jar包拷贝到tomcat\webapps\solr\WEB-INF\lib目录下
3,将solr-6.3.0\server\resources下的log4j.properties配置文件拷贝到tomcat\webapps\solr\WEB-INF\classes,如果WEB-INF下没有classes文件那么 就创建一个classes文件夹。
4,在tomcat\webapps\solr下新建一个文件solrhome(文件夹名称可以任意命名),将solr-6.3.0\server\solr下的所有文件拷贝到solrhome文件夹下
5,修改tomcat\webapps\solr\WEB-INF下的web.xml,找到如下代码:
<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>
默认是注解掉,放开注解,并将<env-entry-value>中的值修改为solrhome目录,我的是:E:\apache-tomcat-8.0.36\webapps\solr\solrhome
还要将167行左右的如下代码段注释掉,不注释掉就没有权限访问
<!--
<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>
nable everything but TRACE
</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint>
-->
到此时就可以运行tomcat,运行成功后访问:http://localhost:8080/solr/index.html
core配置
将solr-6.3.0\example\example-DIH\solr\solr目录下的conf文件夹拷贝到tomcat\webapps\solr\solrhome文件夹下
配置中文分词器IK Analyzer
solr6.0及以上版本进行中文分词器IK Analyzer的配置和solr低版本中最大不同点在于IK Analyzer中jar包的引用。一般的IK分词jar包都是不能用的,因为IK分词中传统的jar不支持solr6.0这个高版本的,所以就会发送运行错误的界面。
1. 下载solr6.0+专用的IK Analyzer的jar包和相应的配置文件,我从网上下载了ik-analyzer-solr5-5.x.jar及相应的配置文件。
2. 将ik-analyzer-solr5-5.x.jar这个jar包放入tomcat\webapps\solr\WEB-INF\lib目录下,将IKAnalyzer.cfg.xml,mydict.dic,stopword.dic放在tomcat\webapps\solr\WEB-INF\classes目录中去。
3. 配置fieldType。需要在tomcat\webapps\solr\solrhome\conf下的managed-schema配置文件中进行配置,在文档末尾加上如下配置:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4. 配置业务字段。以我自己的业务为例,我在上面fiedType下配置了如下业务字段:
<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="long" 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"/>
单机版Solr6.0+整合Tomcat与中文分词器IKAnalyzer
最新推荐文章于 2021-08-17 09:54:49 发布