设为首页 收藏本站
查看: 973|回复: 0

[经验分享] tomcat + solr + IK 全过程

[复制链接]

尚未签到

发表于 2016-12-14 10:55:03 | 显示全部楼层 |阅读模式
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  进行测试

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

<fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text_cn" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</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同)输入如:“我是美女屌丝程序员”进行测试。











运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314210-1-1.html 上篇帖子: solr 同义词搜索 下篇帖子: solr发布到tomcat下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表