1,环境说明
(1)工具
①Tomcat 8.5.15 Windows 32位版本(jdk 1.8.0_131)
②Solr 6.5.1
(2)环境
Windows7 64位
2,步骤
(1)解压Tomcat和Solr压缩包
(2)修改Tomcat文件夹名为fooSearch,清空webapps文件夹中所有内容
(3)从Solr文件夹中拷贝部分内容到Tomcat文件夹中:
源(Solr文件夹) |
目标(Tomcat文件夹) |
server\solr-webapp\webapp文件夹 |
webapps\fooSearch (复制并改名为fooSearch) |
server\lib\ext\*.jar文件 |
webapps\fooSearch\WEB-INF\lib\*.jar文件 |
server\lib\ metrics *.jar文件 |
webapps\fooSearch\WEB-INF\lib\*.jar文件 |
dist\ solr-dataimporthandler-*.jar文件 |
webapps\fooSearch\WEB-INF\lib\*.jar文件 |
server\resources\log4j.properties |
webapps\fooSearch\WEB-INF\classes\log4j.properties (需创建classes文件夹并设置log文件的位置) |
server\solr\*.*文件 |
solrhome\*.*文件 (需创建solrhome文件夹) |
(4)配置Solr
①编辑web.xml文件,设置【solr/home】项,指向创建的solrhome文件夹。例如:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>C:/fooSearch/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> |
②配置安全性约束【security-constraint】项,注释相关内容。例如:
<!-- <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> --> |
(5)添加内核
源(Solr文件夹) |
目标(Tomcat文件夹) |
example\example-DIH\solr\solr\*.*文件 |
solrhome\core1\*.*文件 (需创建core1文件夹) |
启动Tomcat(需要在startup.bat中设置JAVA_HOME),例如:
setlocal
set JAVA_HOME=C:\jdk1.8.0_131
rem Guess CATALINA_HOME if not defined |
使用浏览器输入地址:http://localhost:8080/fooSearch/index.html进行验证。
(6)配置中文分词
①添加解析器
源(Solr文件夹) |
目标(Tomcat文件夹) |
contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-6.5.1.jar |
webapps\fooSearch\WEB-INF\lib\ lucene-analyzers-smartcn-6.5.1.jar |
②设置字段类型
修改Tomcat文件夹下solrhome\core1\conf\ managed-schema文件,添加:
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0"> <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>
</schema> |
重启Tomcat进行验证。
(7)配置IKAnalyzer分词
①添加解析器
源(附件) |
目标(Tomcat文件夹) |
参考文档有下载链接 |
webapps\cjmSearch\WEB-INF\classes下: ①ext.dic ②stopword.dic ③IKAnalyzer.cfg.xml
|
参考文档有下载链接 |
webapps\fooSearch\WEB-INF\lib下: ①ik-analyzer-solr5-5.x.jar ②solr-analyzer-ik-5.1.0.jar |
修改IKAnalyzer.cfg.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry>
</properties> |
修改ext.dic添加自定义词典。
②设置字段类型
修改Tomcat文件夹下solrhome\core1\conf\ managed-schema文件,添加:
<!-- IK分词 --> <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>
</schema> |
重启Tomcat进行验证。
(8)配置中文拼音分词
①添加解析器
源(附件) |
目标(Tomcat文件夹) |
参考文档有下载链接 |
webapps\fooSearch\WEB-INF\lib下: ①pinyin4j-2.5.0.jar ②pinyinAnalyzer4.3.1.jar |
②设置字段类型
修改Tomcat文件夹下solrhome\core1\conf\ managed-schema文件,添加:
<!-- 拼音分词 --> <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/> <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" /> <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" /> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/> <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" /> <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" /> </analyzer> </fieldType>
</schema> |
重启Tomcat进行验证。
(9)配置业务字段
修改Tomcat文件夹下solrhome\core1\conf\ managed-schema文件,添加:
<!-- biz --> <field name="fooChannel" type="text_general" indexed="true" stored="true"/> <field name="fooTitle" type="text_ik" indexed="true" stored="true"/> <field name="fooSubTitle" type="text_ik" indexed="true" stored="true"/> <field name="fooCat" type="text_general" indexed="true" stored="true"/> <field name="fooCatCode" type="text_general" indexed="true" stored="true"/> <field name="fooContents" type="text_ik" indexed="true" stored="true"/> <field name="fooBrief" type="text_ik" indexed="true" stored="true"/> <!-- biz --> <field name="fooStatus" type="int" indexed="true" stored="true"/> <field name="fooTsp" type="date" indexed="true" stored="true"/>
</schema> |
重启Tomcat进行验证。
注意:为了与Solr自带的字段相区别,笔者建议业务字段统一带前缀(上文中的foo) 。
3,其他
(1)移动Tomcat文件夹的修改点
编辑web.xml文件,设置【solr/home】项,指向移动后的solrhome文件夹
(2)自定义字典
修改ext.dic添加自定义词典。
(3)服务端口
Solr默认的端口为8983,需设置Tomcat的服务端口。
修改conf/server.xml文件,将端口号从默认的8080修改为8903。
另外建议添加URIEncoding=”UTF-8”,以对GET方法传汉字的支持。
--> <Connector port="8983" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <!-- A "Connector" using the shared thread pool-->
|
服务端的URL即为:http://<ip>:8983/fooSearch/core1/。
或,修改solrhome文件夹下的solr.xml文件,将【hostPort】项改为与conf/server.xml文件中指定的端口一致。
(4)初始化数据
使用浏览器:http://localhost:9883/fooSearch/index.html登录管理控制台。
选择目标核,进入文档项(Documents),通过XML命令执行更新操作。
<delete> <query>*:*</query> </delete> <commit/> |
4,参考文档
http://blog.youkuaiyun.com/l1028386804/article/details/70199983
http://blog.youkuaiyun.com/l1028386804/article/details/70200378