tomcat

以tomcat 7为例,位置/work/apache-tomcat-7.0.55

Solr 3.6.2

基本配置

Solr 3.6.2。须要JDK 6/JDK7支持。

下载Solr 3.6.2。解压后,位置:/work/apache-solr-3.6.2。

在tomcat的conf/Catalina/localhost文件夹下,新建solr.xml文件,内容例如以下:

<Context docBase="/work/apache-solr-3.6.2/example/webapps/solr.war" privileged="true" allowLinking="true" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/work/apache-solr-3.6.2/example/multicore" override="true" />
</Context>

拷贝example/solr/conf文件夹下的内容,到example/multicore/core0/conf文件夹下,

启动tomcat。訪问:http://localhost:8080/solr/,出现solr界面,则solr的core0基本配置已经完毕。

tomcat优化配置:

<Connector port="9090" protocol="org.apache.coyote.http11.Http11NioProtocol"
executor="tomcatThreadPool"
connectionTimeout="20000"
maxThreads="5000" minSpareThreads="50"
acceptCount="5000" enableLookups="false"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plan"
compression="on" compressionMinSize="2048" disableUploadTimeout="true"
redirectPort="8443" URIEncoding="UTF-8"
/>

索引文件位置:core0/data。能够使用du -sh 查看索引大小。

分词器

Lucene3.2-3.6,须要IK Analyzer 2012 U6。

下载IK分词器。在multicore下新建lib文件夹,把IK jar放置到lib文件夹下。比如:IKAnalyzer2012_u6.jar。然后改动multicore下得solr.xml文件,在solr节点中添加属性: sharedLib="lib" 就可以。

假设须要配置扩展词库和停止词库,则须要到tomcat的webapps/solr/WEB_INF文件夹下新建classes文件夹,把IKAnalyzer.cfg.xml和对应的字典文件放置在这个文件夹中,IKAnalyzer.cfg.xml的内容例如以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer Configure</comment>
<!--用户能够在这里配置自己的扩展字典 -->
<entry key="ext_dict">dic1.dic;dic2.dic;</entry> <!--用户能够在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>

字典文件的配置方式为:无BOM的UTF-8编码方式。

注意:有人把IKAnalyzer.cfg.xml和相关配置文件,放到multicore/lib文件夹下。这是不生效的。

然后,在schema.xml中。配置类型:text_general 使用 IK中文分词,配置节点例如以下:

<fieldType name="text_general" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

则全部使用text_general类型的field都会使用IK分词。

关于这样的字段类型的原始配置例如以下:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

停止词库

指的是指文本中出现频率非常高,但实际意义又不大的词,主要指副词、虚词、语气词等。如“是”、“而是”等。它主要用在信息检索中。

在为文本或网页建立索引的时候。会去掉这些词。

扩展词库

与自己的业务相关的词库。会作为独立词进行处理。比如:http://blog.csdn.net/shihuacai/article/details/8494360

主从

solrconfig.xml,master机器配置:

<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="master">
<str name="replicateAfter">startup</str>
<str name="replicateAfter">optimize</str>
<str name="confFiles">schema.xml</str>
<str name="commitReserveDuration">00:00:30</str>
<str name="numberToKeep">1</str>
</lst>
</requestHandler>

solrconfig.xml,slave机器配置:

<requestHandler name="/replication" class="solr.ReplicationHandler">
<lst name="slave">
<str name="masterUrl">http://ip:8080/solr/core0/replication</str>
<str name="pollInterval">00:00:10</str>
<str name="compression">external</str>
<str name="httpConnTimeout">5000</str>
<str name="httpReadTimeout">10000</str>
</lst>
</requestHandler>

关于compression,有人这样说:external 非常easy有索引大小不正确, 压缩文件损坏这2个问题, 导致复制无法进行, 且一直复制失败, 測试下来internal没不论什么问题;只是我每遇到过。

很多其它内容參考网址:http://wiki.apache.org/solr/SolrReplication 。

Solr 4.9.0

基本配置

Solr 4.9。须要JDK7支持。

下载Sorl 4.9,解压后。位置:/work/solr-4.9.0。

solr\dist\solr-4.9.0.war至tomcat\webapps,并更名为solr.war

重新启动tomcat。solr.war自己主动部署,改动webapps\solr\WEB-INF\web.xml中的solrHome,例如以下:

    <env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/work/solr-4.9.0/example/multicore</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

复制solr-4.9.0\example\lib\ext\*.jar至tomcat\lib

复制solr-4.9.0\example\resources\log4j.properties至tomcat\lib

重新启动tomcat,訪问:http://localhost:8080/solr/,出现solr界面,则solr的基本配置已经完毕。

其它部分和3.6.2类似。

分词器

下载IK Analyzer分词器。lucene4.X和solr4.X的IK Analyzer 要用以下这个版本号IK Analyzer 2012FF_hfl。

jar包放在tomcat/webapps/solr/WEB-INF/lib文件夹下,xml和dic放在tomcat/webapps/solr/WEB-INF/classes文件夹下。

其它。也就是IKAnalyzer.cfg.xml、shema.xml的内容配置,和3.6.2类似,不赘述。

另外。注意,在solr4.9中使用的IK分词器jar包,在schema.xml中应该这样配置:

<fieldType name="text_general" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

英文在IK Analyzer 2012FF_hfl中以及没有org.wltea.analyzer.solr包了。

这个我还不确认是在IK Analyzer 2012FF_hfl中就没有了,还是我下载的jar包不全...

主从

和3.6.2类似,不赘述。

Solr3.6.2和Solr4.9.0经常使用配置的更多相关文章

  1. Solr4.8.0源码分析(25)之SolrCloud的Split流程

    Solr4.8.0源码分析(25)之SolrCloud的Split流程(一) 题记:昨天有位网友问我SolrCloud的split的机制是如何的,这个还真不知道,所以今天抽空去看了Split的原理,大 ...

  2. Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五)

    Solr4.8.0源码分析(24)之SolrCloud的Recovery策略(五) 题记:关于SolrCloud的Recovery策略已经写了四篇了,这篇应该是系统介绍Recovery策略的最后一篇了 ...

  3. Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四)

    Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四) 题记:本来计划的SolrCloud的Recovery策略的文章是3篇的,但是没想到Recovery的内容蛮多的,前面 ...

  4. Solr4.8.0源码分析(22)之SolrCloud的Recovery策略(三)

    Solr4.8.0源码分析(22)之SolrCloud的Recovery策略(三) 本文是SolrCloud的Recovery策略系列的第三篇文章,前面两篇主要介绍了Recovery的总体流程,以及P ...

  5. Solr4.8.0源码分析(21)之SolrCloud的Recovery策略(二)

    Solr4.8.0源码分析(21)之SolrCloud的Recovery策略(二) 题记:  前文<Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)>中提 ...

  6. Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)

    Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一) 题记: 我们在使用SolrCloud中会经常发现会有备份的shard出现状态Recoverying,这就表明Solr ...

  7. Solr4.8.0源码分析(14)之SolrCloud索引深入(1)

    Solr4.8.0源码分析(14) 之 SolrCloud索引深入(1) 上一章节<Solr In Action 笔记(4) 之 SolrCloud分布式索引基础>简要学习了SolrClo ...

  8. Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2)

    Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2) 上一节主要介绍了SolrCloud分布式索引的整体流程图以及索引链的实现,那么本节开始将分别介绍三个索引过程即LogUpdat ...

  9. Solr4.8.0源码分析(19)之缓存机制(二)

    Solr4.8.0源码分析(19)之缓存机制(二) 前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程.本节将更深 ...

随机推荐

  1. 二叉搜索树BStree

    二叉搜索树,实际上是有点类似于二分查找.实际上很简单,就是递归.直接上代码,有点要注意的就是删除的时候,如果是左子树和右子树都存在的话,要寻找继承者(successor). import java.u ...

  2. hibernate使用原生SQL查询

    以下是Demo测试Hibernate 原生SQL查询: import java.util.Iterator; import java.util.List; import java.util.Map; ...

  3. (判断url文件大小)关于inputStream.available()方法获取下载文件的总大小

    转自:http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件 ...

  4. socket连接和http连接的区别

    socket连接和http连接的区别 HTTP协议:简单对象访问协议,对应于应用层  ,HTTP协议是基于TCP连接的 tcp协议:    对应于传输层 ip协议:     对应于网络层 TCP/IP ...

  5. iOS:quartz2D绘图 (动画)

    quartz2D可以用来绘制自己需要的图形,它们绘制出来的是一个静态的图形,那么如何绘制一个动态的图形呢?动态的图形就是动画,所谓动画,其实就是很多张图片在短时间内不停的切换所产生的一种视觉效果.qu ...

  6. unity linear space时 photoshop blend的正确设置

    gamma correction的dcc设置 ps在线性空间下工作 blend的时候颜色设置 勾选用灰度系数混合rgb 1.0 这样就是在线性空间下工作了 这样素材在数学上是正确的 r8g8b8a8格 ...

  7. Python程序员技能表—446家知名企业的Py招聘信息(转载)

    Python程序员技能表—446家知名企业的Py招聘信息 转载: python 正在学习python或者想学习python的可以加群:330637182 正在学习python或者想学习python的可 ...

  8. Spark Shuffle 堆外内存溢出问题与解决(Shuffle通信原理)

    Spark Shuffle 堆外内存溢出问题与解决(Shuffle通信原理) http://xiguada.org/spark-shuffle-direct-buffer-oom/ 问题描述 Spar ...

  9. 关于mysql存储过程创建动态表名及參数处理

      转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)  近期游戏開始第二次内測,開始处理操作日志.最開始把日志放到同一个表里面,发现一天时间,平均100玩家 ...

  10. selenium 问题:加了显性等待后,操作元素依然出错

    背景: 用WebDriverWait时,一开始用的是presence_of_element_located,我对它的想法就是他就是用来等待元素出现.结果屡屡出问题.元素默认是隐藏的,导致等待过早的就结 ...