solr4.9.0部署到tomcat7
2016-02-23 18:03
639 查看
在tomcat中部署solr
solr默认自带了jetty服务器,但我们习惯了tomcat,我们通过以下步骤将solr部署到tomcat:
1、将solr-4.9.0.zip解压到指定目录中,如E:\solr-4.9.0
2、将E:\solr-4.9.0\example\webapps下的solr.war拷贝到E:\tomcat7\webapps目录下
3、新建文件夹E:\sorlhome,将E:\solr-4.9.0\example\solr这个目录拷贝至E:\sorlhome中
4、cmd进入E:\tomcat7\bin路径下,执行startup.bat命令启动tomcat,此时tomcat会把solr.war进行解压,在当前目录下生成一个solr文件夹;停止tomcat,删除solr.war。
5、配置tomcat中的项目找到sorlhome,用编辑器打开E:\tomcat7\webapps\solr\WEB-INF下面的web.xml文件,找到下面的代码:
取消注释,修改成:
其中,
6、启动tomcat,访问:http://localhost:8080/solr
solr部署成功。
整合中文分词组件IK Analyzer
IK
Analyzer是一款结合了词典和文法分析算法的中文分词组件,基于字符串匹配,支持用户词典扩展定义,支持细粒度和智能切分,比如:
智能分词的结果是:
最细粒度分词结果:
下载并解压缩IKAnalyzer2012FF_u1.jar放到目录:E:\tomcat7\webapps\solr\WEB-INF\lib,修改配置文件E:\sorlhome\solr\collection1\conf\schema.xml,添加代码:
默认分词器进行最细粒度切分。IKAnalyzer支持通过配置IKAnalyzer.cfg.xml 文件来扩充您的与有词典以及停止词典(过滤词典),只需把IKAnalyzer.cfg.xml文件放入class目录下面,指定自己的词典mydic.dic,PS:(这一步骤我没做)
事实上前面的FieldType配置其实存在问题,根据目前最新的IK版本IK Analyzer 2012FF_hf1.zip的IKAnalyzer类中没有读取配置中的useSmart属性,所以在建立索引和查询索引中都使用的是细粒度分词索引时使用最细粒度分词,而查询时最大分词(智能分词)这一功能实际上是不生效的。解决办法:方法是创建了两个类IKAnalyzerWithSmart(默认智能分词)和IKAnalyzerWithoutSmart(默认细粒度分词),再重新导出jar包,具体的jar包编译过程见:http://www.qikor.com/2014/08/10/apache-solr-4-9-and-ikanalyzer-down/
将jar包放到E:\tomcat7\webapps\solr\WEB-INF\lib目录下,并修改schema.xml文件内容如下,
这样就能够在创建索引时使用智能分词,在查询索引时使用细粒度分词。
<!-- 在创建索引时使用智能分词,在查询索引时使用细粒度分词。-->
修改后的jar包下载:http://pan.baidu.com/s/1bvF3P0
重新启动服务,访问http://localhost:8080/solr/#/collection1/analysis
测试:
在Field Value(Index)和Field Value(Query)中输入:张三说的的确实在,
在Analyse Fieldname / FieldType里选择刚才设置的字段名称或是分词器类型,我这里应该选的是ik,
测试效果:
solr默认自带了jetty服务器,但我们习惯了tomcat,我们通过以下步骤将solr部署到tomcat:
1、将solr-4.9.0.zip解压到指定目录中,如E:\solr-4.9.0
2、将E:\solr-4.9.0\example\webapps下的solr.war拷贝到E:\tomcat7\webapps目录下
3、新建文件夹E:\sorlhome,将E:\solr-4.9.0\example\solr这个目录拷贝至E:\sorlhome中
4、cmd进入E:\tomcat7\bin路径下,执行startup.bat命令启动tomcat,此时tomcat会把solr.war进行解压,在当前目录下生成一个solr文件夹;停止tomcat,删除solr.war。
5、配置tomcat中的项目找到sorlhome,用编辑器打开E:\tomcat7\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> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:/sorlhome/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
其中,
<env-entry-value>E:/sorlhome/solr</env-entry-value>的值是solr home的地址,在第三步中我们放置到E:/sorlhome/solr
6、启动tomcat,访问:http://localhost:8080/solr
solr部署成功。
整合中文分词组件IK Analyzer
IK
Analyzer是一款结合了词典和文法分析算法的中文分词组件,基于字符串匹配,支持用户词典扩展定义,支持细粒度和智能切分,比如:
[code]张三说的确实在理
智能分词的结果是:
[code]张三 | 说的 | 确实 | 在理
最细粒度分词结果:
[code]张三 | 三 | 说的 | 的确 | 的 | 确实 | 实在 | 在理
下载并解压缩IKAnalyzer2012FF_u1.jar放到目录:E:\tomcat7\webapps\solr\WEB-INF\lib,修改配置文件E:\sorlhome\solr\collection1\conf\schema.xml,添加代码:
<field name="content" type="text_ik" indexed="true" stored="true"/> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>
[code]查询采用IK自己的最大分词法,索引则采用它的细粒度分词法,
[code]此时就算配置完成了,重启服务:java -jar start.jar,来看看IKAnalyzer的分词效果怎么样,打开Solr管理界面,点击左侧的Analysis页面:
[code]
默认分词器进行最细粒度切分。IKAnalyzer支持通过配置IKAnalyzer.cfg.xml 文件来扩充您的与有词典以及停止词典(过滤词典),只需把IKAnalyzer.cfg.xml文件放入class目录下面,指定自己的词典mydic.dic,PS:(这一步骤我没做)
<?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">/mydict.dic; /com/mycompany/dic/mydict2.dic;</entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">/ext_stopword.dic</entry> </properties>
事实上前面的FieldType配置其实存在问题,根据目前最新的IK版本IK Analyzer 2012FF_hf1.zip的IKAnalyzer类中没有读取配置中的useSmart属性,所以在建立索引和查询索引中都使用的是细粒度分词索引时使用最细粒度分词,而查询时最大分词(智能分词)这一功能实际上是不生效的。解决办法:方法是创建了两个类IKAnalyzerWithSmart(默认智能分词)和IKAnalyzerWithoutSmart(默认细粒度分词),再重新导出jar包,具体的jar包编译过程见:http://www.qikor.com/2014/08/10/apache-solr-4-9-and-ikanalyzer-down/
将jar包放到E:\tomcat7\webapps\solr\WEB-INF\lib目录下,并修改schema.xml文件内容如下,
这样就能够在创建索引时使用智能分词,在查询索引时使用细粒度分词。
<!-- 在创建索引时使用智能分词,在查询索引时使用细粒度分词。-->
<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzerWithSmart" /> <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzerWithoutSmart" /> </fieldType> <field name="ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
修改后的jar包下载:http://pan.baidu.com/s/1bvF3P0
重新启动服务,访问http://localhost:8080/solr/#/collection1/analysis
测试:
在Field Value(Index)和Field Value(Query)中输入:张三说的的确实在,
在Analyse Fieldname / FieldType里选择刚才设置的字段名称或是分词器类型,我这里应该选的是ik,
测试效果:
相关文章推荐
- Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are解决方法
- 关于 tomcat 集群中 session 共享的三种方法
- tomcat 优化
- Tomcat集群之Session复制配置
- Apache+Tomcat集群配置+session共享
- Error“Cannot change version of project facet Dynamic web module to 2.5”导致Tomcat无法启动解决办法
- Maven学习 (六) Elipse中发布一个Maven项目到Tomcat
- tomcat 配置
- 重新启动linux上的tomcat
- tomcat安装不成功-提示找不到JAVA虚拟机
- tomcat server options 在哪里?
- 内存溢出之Tomcat内存配置
- tomcat6 使用comet衍生出的两个额外问题
- tomcat内存
- 部署web Service到tomcat
- Tomcat工作原理
- 又见中文乱码
- tomcat启动Error ListenerStart解决办法
- maven tomcat plugin实现热部署
- tomcat+java的web程序持续占cpu问题调试