tomcat+solr+IK全过程

solr初触,在用jetty跑通以后,开始在tomcat下进行配置。
首先,下载最新版的solr ,http://apache.dataguru.cn/lucene/solr/4.2.1/

1:将dist目录下的solr-4.2.0.war 复制到tomcat 下的webapps根目录,重命名为solr.war,运行tomcat,solr.war被解压。

2:在tomcat根目录(可以是任何目录)新建文件目录solr/home,将solr-4.1.0\example下的solr复制到solr/home目录下,如果要配置多核,只用复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home

3: 找到 webapps\solr\WEB-INF下的web.xml,配置solr/home信息
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/apache-tomcat-7.0.34/solr/home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>


到这里,就可以测试一下了.运行tomcat,访问http://127.0.0.1:端口号/solr/admin
如果看到solr的主页面,并且没有错误信息,说明已经配置成功。


如此,我们来进行更细致的配置
4:上面有提到多核,配置如下。
复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home,找开
solr.xml,找到cores标签,默认的配置是core 0、core1.可根据需求进行修改,我
有如下两个业务,需要两个不同的core,如下配置。
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    <core name="EMAIL" instanceDir="email" />
    <core name="IM" instanceDir="im" />
  </cores>

其中,name就是我们访问时的名称,instanceDir为solr/home下的core0、core1,这里作相应的修改

重启tomcat,访问http://127.0.0.1:8089/solr/#/EMAIL
http://127.0.0.1:8089/solr/#/IM  进行测试[/color]

其中,solr/home/EMAIL与IM下,最重要的文件就是schama.xml,所以的索引字段都在这里面进行配置,主要有两个标签<field> 与 <fieldType>
    <schema name="im core im" version="1.1">
        <types>

<fieldtype name="string"  sortMissingLast="true" omitNorms="true"/>
<fieldType name="text_cn">
<analyzer/>
</fieldType>
    </types>
    <fields>
   <field name="id" type="int" indexed="true" stored="true" multiValued="false"/>
   <field name="name" type="text_cn" indexed="true" stored="true" multiValued="true"/>
   <field name="city" type="text_cn" indexed="true" stored="true" multiValued="true"/>
   </fields>

其中,库名要与当前的库名匹配<schema name="im core im" version="1.1">, indexed是否建索引,stored是否保存,multiValued是否多个值,根据具体的需求进行配置。


5:上面有个name="text_cn"的类型,这个就是接下来要进行的分词。
我选择了IK分词器。在配置的过程中,遇到一个问题:
java.lang.VerifyError: class org.wltea.analyzer.lucene.IKAnalyzer overrides final method tokenStream.(Ljava/lang/String;Ljava/io/Reader;)Lorg/apache/lucene/analysis/TokenStream;


原因是我最开始用的是IK3.2.8  与 当前solr的版本冲突。重新下载 2012 ff 后问题得到解决。下载地址为:http://code.google.com/p/ik-analyzer/downloads/detail?name=IK%20Analyzer%202012FF_hf1.zip&can=2&q=


将IKAnalyzer2012FF_u1.jar拷贝到D:\apache-tomcat-7.0.34\webapps\solr\WEB-INF\lib目录下;
IKAnalyzer.cfg.xml(分词器扩展配置文件)与stopword.dic(扩展的stopword词典,3.2以上版本提供)文件放置在代码根目录(对于web项目,通常是WEB-INF/classes目录,同hibernate、log4j等配置文件相同)下即可.


重启tomcat,进入http://127.0.0.1:8089/solr/#/EMAIL/analysis  (IM同)输入如:“我是美女屌丝程序员”进行测试。










[/size][/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值