`
lp895876294
  • 浏览: 280043 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

solr+IKAnalyzer部署

 
阅读更多

solr:选用最新solr版本4.8.1。

中文分词工具:备选有庖丁分词和IKAnalyzer。IKAnalyzer在分词效率上比庖丁分词要差,但是在分词模式(智能分词、细粒度分词)、分词个数、中英文数字汉子分词、词库扩展性和对lucene的支持都比庖丁分词要强。庖丁分词最新版本3.0只能支持lucene3.6,IKAnalyzer_2012FF_hf1支持lucene4.8.1。最终使用IKAnalyzer作为中文分词工具。

Servlet容器:选择tomcat7,jdk1.7.0。

部署步骤:

1.solr部署。

        将solr-4.8.1\dist\solr-4.8.1.war放到tomcat7的webapps目录下,并改名为solr.war。也可以将solr.war改名为solr.zip,解压后放到webapps下。

2.solr日志配置。

      首先添加日志需要的jar包,将solr-4.8.1\example\lib\ext下的所有jar包复制到tomcat\webapps\solr\WEB-INF的lib目录中。

      然后在webapps\solr\WEB-INF下新建classes文件夹,将solr-4.8.1\example\resources\log4j.properties放入classes目录下。

      修改log4j.properties 文件日志:log4j.appender.file.File=../webapps/solr/solr.log,使日志文件存放于webapps\solr目录下。

注:为solr添加日志和修改日志的配置主要为了能够将与solr相关的信息放到一起,便于以后查看和维护。

3.solr索引配置。

       在webapps\solr下新建solr_home文件夹,将solr-4.8.1\example\solr文件夹的内容放入。

       在webapps\solr\WEB-INF\web.xml中指定solr索引文件的位置,如下配置:

 

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>..\webapps\solr\solr_home</env-entry-value>
	   <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

注:tomcat通过bin\startup.bat或startup.sh启动,当前目录就是tomcat\bin,项目配置文件的目录也是相对于当前目录,因此如果需要指定文件目录,就是用“..\”返回到tomcat根目录。

 

4.中文分词配置。

        将IKAnalyzer分词所需要的jar包IKAnalyzer2012FF_u1.jar放入webapps\solr\WEB-INF\lib下。

        IKAnalyzer配置文件IKAnalyzer.cfg.xml和stopword.dic放入webapps\solr\WEB-INF\classes目录下。

        在webapps\solr\solr_home\collection1\conf\schema.xml中添加IKAnalyzer配置,如下:

       

<fieldType name="text_ik" class="solr.TextField">
		<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>	
	</fieldType>
	<field name="index_text" type="text_ik" indexed="true" stored="true" multiValued="false" />

 注:field标签的name属性的值不能与已有field标签name属性值相同,否则tomcat启动会报错。

       按照如上IKAnalyzer配置,IKAnalyzer分词是细粒度分词,但是一般为了减小索引文件的大小,在建立索引时才会使用智能分词,在查询索引时使用细粒度分词,所以需要分别为建立索引和查询索引指定不同的分词模式,详见如下:

<fieldType name="text_ik" class="solr.TextField">
		<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer" userSmart="true"/>
		<analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer" userSmart="false"/>		
	</fieldType>

       但是在IKAnalyzer_2012FF_hf1版本的IKAnalyzer类中没有读取配置中的useSmart属性,所以在建立索引和查询索引中都使用的是细粒度分词。网上也有了对此问题的解决方案,但是基本上都是通过修改源代码方式解决。

       考虑到以后代码的更新和维护等,没有采用修改IKAnalyzer源代码。而是新建了一个JAVA项目,并创建了两个类IKAnalyzerWithSmart(默认智能分词)和IKAnalyzerWithoutSmart(默认细粒度分词),源代码和IKAnalyzer代码相同,只是分别将userSmart设置为true和false。最后将项目导出为jar包,见附件:IKAnalyzer2012FF_u1_smart.jar。

       将IKAnalyzer2012FF_u1_smart.jar放入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>

5.总结。solr、solr日志、索引文件和分词都已经放到了一个目录下,项目迁移也不用修改相关配置,直接就可以启动。已将配置好的solr4.8.1见附件“solr4.8.1-已配置.rar”,解压后放到tomcat7\webapps目录下,启动tomcat7即可。IKAnalyzer分词工具见附件IK Analyzer 2012FF_hf1.rar。

分享到:
评论

相关推荐

    Solr3.6+IKAnalyzer3.2.8分词安装部署

    Solr是一个全文检索服务器,基于Lucene3.5开发的,我们可以在solr的基础上进行定制化的开发。新手学习记录了学习过程为后来者提供个参考吧。

    IKAnalyzer中文分词器

    solr5.5.4对应的中文分词器下载,如果solr为tomcat方式部署,下载后解压该压缩文件,将下面的jar文件复制到solr项目的lib目录下,将里面的配置其他配置文件复制到classes目录下即可。

    solr4.4.0安装部署步骤详解,ik分词器,solr实时同步以及增量更新

    文件中包括:1:solr4.4.0安装部署详细文档,solr-4.4.0.tgz 安装包2:ik分词器详细配置,IKAnalyzer2012FF_u1.jar和IKAnalyzer2012_FF.jar包3:solr和数据库实现实时数据同步更新,以及更新索引。solr-...

    Solr学习总结配置方法

    1. Solr基本介绍 2. Solr的部署 3. Solr和IKAnalyzer 4. Solr 的其他测试 比较好的solr的文章

    solr5.5.4部署及使用

    本文档包括solr5.5.4的jetty方式部署、tomcat方式部署,并且集成了中文分词器IKAnalyzer的配置详解,和对word文档的支持等等

    solr部署教程

    solr部署教程及分词器的介绍,Solr加入中文分词器,在Solr中配置中文分词IKAnalyzer,搭建并调试Solr

    IK-Analyzer 分词器所需要的配置文件、扩展词典及停用词词典 完整包下载

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。 采用了特有的“正向迭代最细粒度切分算法”,具有60万字/秒的高速处理能力。 采用了多子处理器分析模式,支持:英文字母(IP地址、Email、...

    docker-compose 构建以solr8.11.1为基础的含中文分词器的镜像

    以solr8.11.1为基础镜像,使用docker...文件夹内含有docker-compose.yml脚本、Dockerfile脚本以及构建镜像所需中文分词器ik-analyzer-8.5.0.jar、所有扩展词和停用词相关的配置文件 docker-compose up -d solr 快速启动

    java开源包1

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包11

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包2

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包3

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包6

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包5

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包10

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包4

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包8

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

    java开源包7

    它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...

Global site tag (gtag.js) - Google Analytics