Solr部署及开发
一、部署
1 环境要求
JDK 1.6及以上版本,Tomcat 6及以上,Solr发布版本4.X。如果使用较低版本,请查看Solr版本支持的JDK版本。
2 安装步骤
首先安装JDK 1.7和Tomcat 7,配置好环境变量,并下载最新版Solr,目前版本为4.6.0。如有必要可手动修改Tomcat端口号。为了支持中文,需要修改tomcat中conf目录下的server.xml文件,在connector 节点中添加字符编码属性URIEncoding,如下:
connectionTimeout=\URIEncoding=\redirectPort=\? 运行在jetty服务器 Solr可以运行在自带的jetty服务器,可按如下步骤运行起来: 1、 解压solr-4.6.0.zip到你想到存放的路径,比如:d:/solr 2、 cmd打开命令行窗口,进入d:/solr/example目录 3、 执行命令:java -jar start.jar 4、 通过第三步以后,系统会启动solr自带的jetty服务器,通过 http://localhost:8983/solr/便可访问solr。 此时,solr已成功启动。 ? 运行在Tomcat服务器 1、 solr.4.6.0.zip解压到指定的目录中,如d:/solr-4.6.0。 2、 将d:/solr-4.6.0/example/webapps下的solr.war拷贝到tomcat–>weapps中。 3、 新建文件夹d:/sorl_home,将d:/solr-4.6.0/example/solr目录拷贝至d:/sorl_home中, 如果要配置为多核应用,可以将solr-4.6.0\\example下的multicore拷贝到d:/sorl_home中,这样就会有就会有core0和core1两个应用。多核应用的配置与单核类似,此处示例单核应用。 4、 启动tomcat,此时tomcat会把solr.war进行解压,生成一个solr文件夹;停止tomcat, 删除solr.war。 5、 用编辑器打开tomcat下面的weapps/solr/WEB-INF/web.xml,找到下面的代码: 打开注释,修改成 6、 将solr-4.6.0\\example\\lib\\ext中的jar包copy到tomcat的lib中,再将 solr-4.6.0\\example\\resources中的log4j.properties也放到tomcat/lib中,启动tomcat,访问:http://localhost:8080/solr,应该可以成功访问到solr界面。 二、管理端的使用 1 基本配置 1.1 配置solrconfig.xml 在SolrHome\\solr\\collection1\\conf的solrconfig.xml文件中,将 1.2 配置schema.xml schema.xml配置文件是用于定义index索引库的结构,有点类似于数据表的定义。 1、field–类似于数据表的字段 查询信息,那么设置 indexed=\、omitNorms=\。 (8)、default:设置默认值 2、fieldType–字段类型 .....//省略 属性说明: (1)、name:类型名称, 2配置中文分词 2.1 配置IKAnalyzer中文分词器 注意:Solr4.X版本只能使用IK Analyzer 2012FF以上版本。配置步骤如下: 1.下载IKAnalyzer包 下载地址:http://code.google.com/p/ik-analyzer/downloads/list 2.解压IK Analyzer 2012FF_hf1.zip包 用到其中三个文件: IKAnalyzer2012FF_u1.jar,放到$CATALINA_HOME/webapps/solr/WEB-INF/lib/目录下 IKAnalyzer.cfg.xml,stopword.dic,放到$CATALINA_HOME/webapps/solr/WEB-INF/classes/目录下。 3.设置IKAnalyzer中文分词 修改$SOLR_HOME/collection1/conf/schema.xml文件,在 查询采用IK自己的最大分词法,索引则采用它的细粒度分词法,各自配置了isMaxWordLength属性。 修改$SOLR_HOME/collection1/conf/schema.xml文件,在 在管理界面点击collection1 >>analysis,然后在Analyse Fieldname / FieldType:下拉选择框中选择\或者\,关闭Verbose Output核选框,在Field Value (Index)与Field Value (Query)中输入中文句子,点击\即可以看到分词结果。 2.2 配置mmseg4j mmseg4j的配置与IKAnalyzer类似,但mmseg4j-1.9.x版本中有bug,会报错,需要修改后重新编译或者等待作者更新代码,也可以使用较低版本开发。mmseg4j版本支持情况具体如下: mmseg4j 1.8.3 只支持lucene 2.9/3.0 接口和 solr1.4。其它没改动。 mmseg4j 1.8.5 支持lucene 3.1, solr3.1。 mmseg4j 1.9.0 支持lucene 4.0, solr4.0。 此处以mmseg4j-1.9.1为例叙述配置步骤: 1.下载mmseg4j和搜狗词库 下载地址: http://code.google.com/p/mmseg4j/ http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q 2.解压mmseg4j 将\\mmseg4j-1.9.1\\dist下面的三个包拷贝到webapps/solr/WEB-INF/lib/目录下。在\\webapps\\solr目录下新建一个dic文件夹,把新下载的词库data里面的两个文件拷贝到dic目录下。 3.修改schema.xml文件 修改$SOLR_HOME/collection1/conf/schema.xml,在 dicPath=\ mode=\ 修改$SOLR_HOME/collection1/conf/schema.xml文件,在 ...... 4.修改mmseg4j的小BUG 以下内容参考:http://wxf4150.blog.163.com/blog/static/111380836201292911234802/ 修改mmseg4j源代码中的MMSeg.java,增加属性readerStatus并增加相关Setters与Getters: privateintreaderStatus; publicintgetReaderStatus() { returnreaderStatus; } public void setReaderStatus(intreaderStatus) { this.readerStatus = readerStatus; } 修改mmseg4j源代码中的MMSegTokenizer.java: public void reset(Reader input) throws IOException { //super.reset(input); super.setReader(input); mmSeg.reset(input); } ...... @Override publicbooleanincrementToken() throws IOException { clearAttributes(); if(mmSeg.getReaderStatus() == 1) { mmSeg.reset(this.input); mmSeg.setReaderStatus(0); 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库Solr使用手册在线全文阅读。
相关推荐: