您的位置:首页 > 运维架构 > Tomcat

【Solr】Tomcat部署Solr5

2017-01-22 00:42 387 查看
1.
准备:
Solr5.5.3
tomcat
为方便起见,将solr根目录暂时定义为SOLR_HOME
tomcat根目录定义为TOMCAT_HOME
 
2.解压solr压缩包,目录结构如图
 


3.
将SOLR_HOME/server/solr-webapp下webapp整个文件夹拷贝至TOMCAT_HOME/webapps下,更名为solr
 



 
 
 
4.将SOLR_HOME/server/solr整个文件夹拷贝至任意位置。这一步是为了在之后的步骤为solr的启动指明solr应用所在的位置。在这里,我们把文件夹拷贝到TOMCAT_HOME根目录,并更名为solrhome
 



 
 
更改 TOMCAT_HOME/webapps/Solr/WEB-INF下的web.xml
找到下面这一段,原文件此段注释掉了,将其取消注释。并将其env-entry-value更改为solrhome的根目录位置. 
TOMCAT_HOME/solrhome
 

<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/ProgramFiles/coding/apache-tomcat-8-solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>


 
将SOLR_HOME/server/resources下的log4j.properties拷贝至TOMCAT_HOME/webapps/solr/classes,classes文件需自己创建
 
5.由于要从数据库导入程序。所以必须用到dataImportHandler
 
 
拷贝SOLR_HOME/example/example-DIH/solr下db整个文件夹至
TOMCAT_HOME/solrhome下,并重命名为你要起的core的名字,在这里,我起了自己的项目名outofmemory
此文件夹里面有 conf和data两个文件夹,分别放置了此core的配置文件和索引数据
 



 
 
由于使用了jdbc,所以必须将jdbc的jar引入.
将mysql-connector-java-5.1.34.jar放在
TOMCAT_HOME/webapps/solr/WEB-INF/lib
 
6.修改配置文件
 
修改TOMCAT_HOME/solrhome/outofmemory/conf下solrconfig.xml文件
找到原文件此处



 
由于用到了dataimporthandler,故要为其指明正确的dataimport的jar包..
 
将SOLR_HOME/dist下相关dataimportHandler的包拷贝至你想要放的位置。在这里,我放在了TOMCAT_HOME/lib/solr下



 
并根据jar包的相对路径修改solrconfig.xml文件为
 
 



 
目的就是为了引入dataImportHandler.jar
 
PS:其他SOLR相关包不知是否有用到。。根据原文件我都引入了
 
7.
 
配置数据库信息文件db-data-config.xml。
TOMCAT_HOME/solrhome/{core_name}/conf
 



 
 
注释掉文件里的内容。并添加
 

<dataConfig>
<dataSourcetype="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://127.0.0.1:3306/outofmemory" user="root"password="root"/>
<document>
<entity name="outofmemory"query="select id,user_id,content,title,date from questions">
<fieldcolumn="questionId" name="id" />
<fieldcolumn="user_id" name="user_id" />
<fieldcolumn="content" name="content" />
<field column="title"name="title" />
<field column="date"name="date" />
</entity>
</document>
</dataConfig>


 
更改对应的数据库连接信息,document里面指定你要添加的index
 
8.
 
添加中文分词Ikanalyzer
 
修改TOMCAT_HOME/solrhome/outofmemory/conf下
managed-schema文件
添加此段
 
<!-- 添加IK分词器引用 -->

<fieldType name="text_ik"class="solr.TextField">
<!--索引时候的分词器-->
<analyzer type="index">
<tokenizerclass="org.wltea.analyzer.lucene.IKTokenizerFactory"useSmart="false" />
</analyzer>
<!--查询时候的分词器-->
<analyzer type="query">
<tokenizerclass="org.wltea.analyzer.lucene.IKTokenizerFactory"useSmart="true" />
</analyzer>
</fieldType>


然后你需要在你的某个field域上应用刚才定义的FieldType(域类型),
 

<fieldname="id" type="text_ik" indexed="true"stored="true" required="true" multiValued="false"/>


 
9.添加中文分词词库
 
IKAnalyzer下载地址
http://files.cnblogs.com/files/zhangweizhong/ikanalyzer-solr5.zip
 
将解压出来的IKAnalyzer里的下面3个文件拷贝至
TOMCAT_HOME/webapps/solr/WEB-INF/classes
 



 
如果要自己扩展分词词库,修改IKAnalyer.xml
 

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEproperties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entrykey="ext_dict">ext.dic;sougou.dic</entry>

<!--用户可以在这里配置自己的扩展停止词字典-->
<entrykey="ext_stopwords">stopword.dic;</entry>

</properties>


 
10.
去TOMCAT目录的bin启动服务器。访问http://localhost:8080/solr/index.html
搞定
 
参考资料:
 
http://iamyida.iteye.com/blog/2209106
https://my.oschina.net/ZKXTtiumph/blog/664900
http://blog.csdn.net/weijonathan/article/details/18354723
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solr