`

solr多实例配置以及应用中文分词器IKAnalyzer

阅读更多

前面的两篇博客写的有点傻了,这里整理下,写下整个过程:

 

参考官方文档:

http://wiki.apache.org/solr/SolrTomcat

但是不是完全按照官方文档来的。

 

一、准备材料:

从这里下载solr:http://lucene.apache.org/solr/ ,我下载的是sorl-1.4.0

本机上安装tomcat,我装的是apache-tomcat-6.0.29

 

二、安装 solr 服务

tomcat根目录我下面称为:$CATALINA_HOME

 

自己选择一个规划好的服务目录,比如我选择了:/var/www/run/index/sorl1 用它作为sorl1的$SOLR_HOME

拷贝配置文件和war到$SOLR_HOME

 

 

cp -a /opt/apache-solr-1.4.0/example/solr/* /var/www/run/index/sorl1

cp /opt/apache-solr-1.4.0/dist/apache-solr-1.4.0.war /var/www/run/index/sorl

 

把索引文件修改为你所希望存放的地方,比如我想存放在$SOLR_HOME/data,则修改为

 
<!-- <dataDir>${solr.data.dir:/opt/solr/example/data}</dataDir> -->
<dataDir>/var/www/run/index/solr1/data</dataDir>
 

在tomcat的$CATALINA_HOME/conf/Catalina/localhost/下面,创建文件(solr1.xml),新增 Tomcat Context
把 docBase 指向 $SOLR_HOME/apache-solr-1.4.0.war ,把solr/home 指向 $SOLR_HOME,内容为:

 

<Context docBase="/var/www/run/index/solr1/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/var/www/run/index/solr1"&nbsp; override="true" />
</Context>
 
 

启动tomcat,在浏览器中访问:http://localhost:8080/solr1 就会发现一切都好了。

另外:为了兼容,或者说是为了解决中文乱码,则需要指定URIEncoding为UTF-8

<Connector ... URIEncoding="UTF-8"/>
...
</Connector>
 

 

三、配置多个服务

如果想配置多个服务怎么办?方案有两种:
1、就是刚才拷贝的example/solr换成example/multicore/,按照这里面的配置出来的就是多实例的
2、也可以这样:

把刚才的文件复制一份,就出来另外个实例。

比如接着刚才的,继续配置site:

1、cp -a /var/www/run/index/solr1 /var/www/run/index/solr2

2、然后修改索引文件位置

3、cp  $CATALINA_HOME/conf/Catalina/localhost/solr1.xml   $CATALINA_HOME/conf/Catalina/localhost/solr2.xml

4、然后修改docBase和solr/home的值为新的位置

5、启动tomcat,你会发现就可以访问 http://localhost:8080/solr2

再增加?以此类推。

 


 

 

 

四、配置中文分词器

    我还是比较落后,solr是1.4.0采用的lucene-core-2.9.1,所以分词器我采用的是IKAnalyzer3.1.6GA .看作者的说明:http://linliangyi2007.iteye.com/blog/512577。

现在的版本应该是:3.2.5stable,可以到这里关注一下:http://code.google.com/p/ik-analyzer/downloads/list ,有高版本的可用下载。要注意对应哦。

 

说明下如何使用吧:
比如你要某个字段要中文分词,那么需要
1、在某个实例下的conf/schema.xml配置文件中的types下配置一个fieldType

<fieldType name="text" class="solr.TextField" >
           <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
 
           <analyzer type="index">
               <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory14" isMaxWordLength="false"/>
               <filter class="solr.StopFilterFactory"
                       ignoreCase="true" words="stopwords.txt"/>
               <filter class="solr.WordDelimiterFilterFactory"
                       generateWordParts="1"
                       generateNumberParts="1"
                       catenateWords="1"
                       catenateNumbers="1"
                       catenateAll="0"
                       splitOnCaseChange="1"/>
               <filter class="solr.LowerCaseFilterFactory"/>
               <filter class="solr.EnglishPorterFilterFactory"
                   protected="protwords.txt"/>
               <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
           </analyzer>
 <analyzer type="query">
               <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory14" isMaxWordLength="true"/>
               <filter class="solr.StopFilterFactory"
                       ignoreCase="true" words="stopwords.txt"/>
               <filter class="solr.WordDelimiterFilterFactory"
                       generateWordParts="1"
                       generateNumberParts="1"
                       catenateWords="1"
                       catenateNumbers="1"
                       catenateAll="0"
                       splitOnCaseChange="1"/>
               <filter class="solr.LowerCaseFilterFactory"/>
               <filter class="solr.EnglishPorterFilterFactory"
                   protected="protwords.txt"/>
               <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
           </analyzer>
 
</fieldType>
 

2、在索引字段name上应用

<field name="name" type="text" indexed="true" stored="true" required="true" />

3、拷贝jar包(IKAnalyzer3.1.6GA.jar)到tomcat使用的lib下,两个位置选一个:
$CATALINA_HOME/lib/
$CATALINA_HOME/webapps/solr1/WEB-INF/lib/
选择第二种的话,每个实例注意都要在WEB-INF/lib/下面拷贝该jar包。

然后启动tomcat(可能是重启)你会发现,name上可以根据新的分词器,建立中文索引和中文查询。
你还可以在这里查看分词细节 http://localhost:8080/from/admin/analysis.jsp?highlight=on



遗漏:最近发现在window机器上,某些配置不行的机器,会出现堆溢出,还是配置多核比较节省内存。接着2的过程,配置多核的例子:

  • 删除$CATALINA_HOME/conf/Catalina/localhost/下面的sorl2或者你还有solr3
  • 重命名solr1.xml为solr.xml,修改solr.xml的内容为:
<Context docBase="/var/www/run/index/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/var/www/run/index/ override="true" />
</Context>
  •  拷贝example\multicore下面的solr.xml到 /var/www/run/index ,修改cores内容为:
<cores adminPath="/admin/cores">
    <core name="solr1" instanceDir="solr1" />
    <core name="solr2" instanceDir="solr2" />
  </cores>
 
  • 删除原来的$CATALINA_HOME/webapps下面的solr1 solr2
  • 启动tomcat拷贝IKAnalyzer3.1.6GA.jar到新的solr下的lib,再重启tomcat,OK.

 

分享到:
评论
3 楼 yangt_2011 2012-09-06  
不过我是用的 3.6.1 的Solr和3.2.8的IK
2 楼 yangt_2011 2012-09-06  
3、拷贝jar包(IKAnalyzer3.1.6GA.jar)到tomcat使用的lib下,两个位置选一个:
$CATALINA_HOME/lib/


貌似不行,报错。
1 楼 huangfoxAgain 2012-01-30  
org.wltea.analyzer.solr.IKTokenizerFactory14

...去掉14吧~
  

相关推荐

    IK 分词器 IK Analyzer 2012FF_hf1 Solr4

    "IKAnalyzer中文分词器V2012_FF使用手册.pdf"是分词器的使用指南,提供了详细的配置和使用方法,包括如何集成到Solr中,如何定制词典,以及如何调整分词器参数以达到最佳效果。 "LICENSE.txt"和"NOTICE.txt"是开源...

    solr中文分词器ik-analyzer-solr7.x

    **Solr中文分词器IK Analyzer** Solr作为一款强大的全文搜索引擎,对于中文处理有着特殊的需求,因为中文的语义分析比英文复杂得多。IK Analyzer是专门为了解决这个问题而设计的,它是一款开源的、高性能的、适用于...

    IKAnalyzer中文分词器

    IKAnalyzer是一款专为中文处理设计的开源分词器,它主要应用于搜索引擎、信息检索系统、文本挖掘等领域。这款工具能够高效地对中文文本进行分词,使得计算机可以更好地理解和处理中文信息。IKAnalyzer的名字来源于...

    solr ik分词器

    Solr是中国最流行的开源搜索引擎平台之一,而IK Analyzer是一款针对中文的高性能分词器,尤其在处理现代汉语的复杂情况时表现出色。本教程将详细解释如何在Solr中安装和使用IK分词器。 首先,让我们理解一下什么是...

    ikanalyzer分词器

    ikanalyzer分词器是一款在Java环境下广泛使用的中文分词工具,尤其在搜索引擎和文本分析领域中扮演着重要角色。它的核心是ikanalyzer.jar类库,这个库包含了分词算法和其他必要的支持类,使得开发者能够轻松地集成到...

    IKAnalyzer中文分词器V3.2使用

    **IKAnalyzer中文分词器V3.2使用详解** IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有...

    solr+IK Analyzer

    2. **配置分析器**:在Solr的schema.xml文件中,配置默认的分析器为IKAnalyzer,指定词典路径。 3. **重启Solr**:完成配置后,重启Solr服务使改动生效。 4. **测试验证**:创建或更新索引,然后通过Solr的Admin UI...

    IKAnalyzer源码+配置+智能分词类

    IKAnalyzer是一款基于Java实现的开源中文分词器,主要应用于搜索引擎和文本分析领域。它是由尹国平(iK)发起并维护的项目,旨在提供一个高效且易用的中文分词解决方案。IKAnalyzer支持自定义扩展字典,允许用户根据...

    solr7.x ikanalyzer pinyin 分词

    Ikanalyzer 是一个专门针对中文分词的开源分析器,它是 Lucene 和 Solr 中文分词的一个解决方案。Ikanalyzer 的设计目标是简化中文分词的配置和使用,使其能够更好地适应各种应用场景。在 Solr 7.3.1 版本中,ik...

    solr 6.x能够使用的IKAnalyzer分词器

    网上有很多关于IKAnalyzer分词器的jar,但当我们使用solr 6.x进行配置的时候,就发现会各种各样的报错,最常出现的问题就是抽象方法错误,其实就是因为我们使用的IKAnalyzer版本和solr版本不匹配导致系统无法根据...

    IKAnalyzer中文分词器 jar包 + 使用文档 + 配置文件 + doc

    IKAnalyzer是一款针对中文处理的开源分词工具,广泛应用于搜索引擎、信息检索系统、文本挖掘等领域。它是基于Java语言开发的,能够很好地与Lucene、Solr等全文检索框架集成,提供高效的中文分词能力。 首先,我们要...

    支持 Solr7 的 ik 分词器

    4. **IKAnalyzer中文分词器V2012_FF使用手册.pdf**:这份手册提供了 ik 分词器的基本使用方法和技术细节,包括分词算法、配置选项以及常见问题解答。虽然手册可能基于较旧的版本,但其中的许多原理和方法仍然适用于 ...

    IKAnalyzer3.1.1中文分词器

    IKAnalyzer3.1.1中文分词器是针对中文文本处理的一款强大工具,主要用于中文文本的分词。在自然语言处理、搜索引擎构建、信息检索等领域,分词是基础且关键的一步,因为中文没有明显的空格来区分单词,所以需要通过...

    java IKAnalyzer 中文分词器

    压缩包中包含的`IKAnalyzer中文分词器V3.0使用手册.pdf`是一份详细的指南,它详细介绍了如何使用IKAnalyzer,包括API的使用、配置的调整以及常见问题的解决方案。建议开发者在开始使用前仔细阅读这份手册,以便更好...

    IKanalyzer 分词小测试例子

    **IKanalyzer分词器详解** IKAnalyzer是一款开源的、基于Java实现的中文分词工具,主要用于对中文文本进行分词处理。它以其高效、灵活的特性,在许多Java开发的搜索引擎和自然语言处理项目中得到广泛应用。这个"IK...

    solr_5.0_tomcat7_IKAnalyzer中文分词安装及demo

    在这个"solr_5.0_tomcat7_IKAnalyzer中文分词安装及demo"的压缩包中,你将找到如何在Solr 5.0中集成IKAnalyzer并进行演示的详细步骤。 首先,我们需要了解Solr与IKAnalyzer的集成过程: 1. **下载和解压**:获取...

    solr与IK中文分词器的安装包及配置

    解压后,你会看到一个名为`server`的目录,其中包含了Solr服务器的核心组件,如`solr.xml`配置文件,`start.jar`启动脚本,以及`solr`目录,里面包含了多个预配置好的Solr实例。 接下来,我们关注IK分词器的安装。...

    IKAnalyzer-5.0

    IKAnalyzer是一款广泛应用于Java环境中的开源中文分词器,尤其在全文检索和自然语言处理领域有着重要的作用。这款工具主要用于解决中文文本的切分问题,为搜索引擎、信息检索系统等提供支持。IKAnalyzer 5.0是其针对...

    solr全文检索+IK分词器

    3. **配置Solr实例**:在Solr的配置文件中(如`solrconfig.xml`),设置分词器路径和相关参数。 4. **上传数据**:使用Solr的`update`接口或者SolrJ等客户端工具,将需要索引的中文文本导入Solr。 5. **测试与优化**...

Global site tag (gtag.js) - Google Analytics