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

[经验分享] Solr 学习(1) —— 搭建环境

[复制链接]

尚未签到

发表于 2016-12-14 11:10:29 | 显示全部楼层 |阅读模式
写在前面

     2010年参加了一个全文搜索的项目,开始学习和使用lucene,写了大半年的代码,在linux上实现了爬虫+建立索引(中文分词)+查询(分页、高亮)+规则(指定关键词组合)触发事件的功能。

     后来随着项目需求的增多,代码越写越多,最痛苦的是在更改实现方案,还有维护索引的时候,又要大量改代码,正当我快崩溃的时候,发现了solr,才知道自己以前实现的维护部分的功能大部分solr都集成了,而且更稳定,功能更强大,原来自己绕了弯路,做了重复发明轮子的工作,于是开始把以前的东西推到重来,全部用solr实现,从此项目在搜索方面稳定了N倍,由衷感谢solr项目给我们带来的便利。以下写一些心得记录自己的学习历程。

 

  solr 安装
  linux下安装过程,windows类似
  
1、安装准备 
     JDK 1.6 或更高版本 
     Tomcat 6
  Solr 3.5 
  
2、Tomcat安装
  将Tomcat发行包解压到指定目录,如/home/tomcat/
3、Solr安装
     将Solr发行包(apache-solr-3.5.0.tgz)解压,复制example/webapp/solr.war到tomcat的webapps目录,例如/home/tomcat/webapps,复制Solr发行包中配置示范文件(/example/solr文件夹)到tomcat/bin目录,如/home/tomcat/bin。按照solr的要求,需要指定solr-home的路径,如不指定,默认当前运行目录(tomcat/bin),于是本文为了简单,直接把solrconf放到bin目录下
  4、中文分词器安装
  中文分词在solr里面是没有默认开启的,需要我们自己配置一个中文分词器。目前可用的分词器有smartcn,IK,jeasy,庖丁。其实主要是两种,一种是基于中科院ICTCLAS的隐式马尔科夫HMM算法的中文分词器,如smartcn,ictclas4j,优点是分词准确度高,缺点是不能使用用户自定义词库;另一种是基于最大匹配的分词器,如IK ,Jeasy,庖丁,优点是可以自定义词库,增加新词,缺点是分出来的垃圾词较多。各有优缺点,看应用场合自己衡量选择吧。
  下面给出两种分词器的安装方法,任选其一即可,推荐第一中,因为smartcn就在solr发行包的contrib/analysis-extras/lucene-libs/下,就是lucene-smartcn-3.5.0.jar
  4.1 smartcn 分词器的安装
  将contrib/analysis-extras/lucene-libs/lucene-smartcn-3.5.0.jar复制到/tomcat/webapps/solr/WEB-INF/lib,
  打开/tomcat/bin/solr/conf/scheme.xml,编辑text字段类型如下,添加以下代码到shema中的相应位置,就是找到fieldType定义的那一段,在下面多添加这一段就好啦

<fieldType name="text" class="solr.TextField">
<analyzer class="org.apahce.lucene.analysis.cn.smart.SmartChineseAnalyzer"/>
</fieldType>
   4.2 IK 分词器的安装   IKAnalyer3.2.8 下载
  将IKAnalyzer3.2.5发行包解压,复制IKAnalyzer3.2.8Stable.jar到Solr的lib中,如/home/tomcat/webapps/solr/WEB-INF/lib,复制配置文件IKAnalyzer.cfg.xml和ext_stopword.dic到tomcat/bin中,如/home/tomcat/bin。同样,到/tomcat/webapps/solr/WEB-INF/lib,
  打开/tomcat/bin/solr/conf/scheme.xml,编辑text字段类型如下,添加到schema中

<fieldType name="text" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
   另外,IK分词的google code上也有详细的使用说明,可以多参考下。作者首页,大家都去学习下
  
5.TOMCAT配置
  
5.1 server.xml
  (如/home/tomcat/conf/server.xml)
     在server.xml主要设置侦听端口。一般来说,SOLR常用端口为8983。你也可以使用自己喜欢的端口,例如80或8080。 同时,注意将URIEncoding设置为UTF-8。例如AJP等更多Native优化,参考TOMCAT优化方案。

<Connector port="8983" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

  


5.2 solr.xml
  如果不想配置solrhome的位置,这一步可略过,因前面把/solr/conf放在了{$TOMCAT}/bin/下面,如果要把配置文件放在其它位置,则需要按这样配置。
     新增solr.xml在{$TOMCAT}/conf/Catalina/localhost/下。TOMCAT在启动时将自动加载该CONTEXT。 docBase应设置为solr war包存放位置,例如/home/apache-solor-3.5.0/example/webapp/solr.war 
     solr/home的值应设置为你规划存放的索引根路径,例如/web/solr/。该目录在以下将称为{$SOLR_HOME}

<Context docBase="/home/apache-solr-3.5.0/example/webapp/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/web/solr" override="true" />
</Context>  
    6 启动Solr
         
  Solr在 Tomcat里,所以启动Tomcat即可,建议初期用bootstrap.jar,方便发现配置中的错误,如
  进入目录/home/tomcat/bin ,然后敲入 java -jar bootstrap.jar即可运行,不报错的话就可以正常访问了
  http://127.0.0.1:8983/solr/
  下面再看下分词器有没配置成功
  http://127.0.0.1:8983/solr/admin/analysis.jsp
  
DSC0000.jpg

   输入:  solr中文分词器
  如果分词的结果显示  solr|中文|分词|器   
  恭喜你,分词器配置成功,solr环境搭建完成了

运维网声明 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-314231-1-1.html 上篇帖子: solr搜索引擎的使用(1) 下篇帖子: Solr试用小记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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