一、依赖包
1、 JDK 1.6以上
2、 solr-4.3.0.tgz
3、 Tomcat或者jetty(注意,solr包中本身就含有jetty的启动相关内容):apache-tomcat-7.0.39.tar.gz
我用的是tomcat,因此以tomcat作为部署内容。
二、安装
1、 解压tomcat包
2、 可选:修改tomcat的启动端口,缺省为8080,最主要设置页面的URIencoding为UTF-8
3、 可选:启动tomcat,并访问,如果没有错误,表示此内容已经OK
4、 解压solr包
5、 dist/solr-4.3.0.war包拷贝到tomcat/webapps下。修改名字为solr
6、 重新启动一下tomcat,这时会将war解开成一个目录
7、 注意,启动时,solr的应用除了自己的lib包之外,还依赖slf4j等相关包,我偷了个懒,将dist/*.jar, dist/solrj-lib/*.jar都拷贝到了tomcat/webapps/solr/WEB-INF/lib/下。
8、 在tomcat/conf/Catalina/localhost目录下,增加solr.xml——对应到solr应用,其文件内容为:
<?xml version="1.0" encoding="UTF-8" ?> <Context docBase="${TOMCAT_HOME}/webapps/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="${TOMCAT_HOME}/solr" override="true"/> </Context> |
此内容主要是为了配置solr/home变量
9、 将solr解开的包中对应的example/solr目录(含内容)全部拷贝到${TOMCAT_HOME}也即tomcat解开的目录下(这个用户可以自行定义,因为其中包含了所有的索引数据,所以务必要搞一个存储空间大一些的目录)
10、 重新启动tomcat,这时访问http://localhost:8080/solr会发现出了一个管理界面。注意,solr 4.3版本比较高,所以务必用比较新的浏览器来访问这个管理界面。
三、部署
上述只是简单安装上了,但是可以增加文档(注意不是上传文档)了,利用solr/update的服务。为了能够支持PDF、word等rich document的识别,要配置solr/update/extract服务以及对中文的识别。
1、 支持tika配置
A、 修改solr/home目录下的collection1/conf/solrconfig.xml文件,找寻“TikaLanguageIdentifierUpdateProcessorFactory”对应的配置块,将其打开,缺省是关闭的。
B、 将Extract和Tika对应的jar包拷贝到solr能认识的地方。也可以修改上述“A”对应的文件的lib的配置,其主要格式如下:
<lib dir="../../../contrib/extraction/lib" regex=".*.jar" /> |
我偷了个懒,将solr包解压后的contrib/extraction/lib目录下的所有jar包放入了solr应用的lib目录下——也即tomcat/webapps/solr/WEB-INF/lib下。
2、 配置中文的分词
不知道缺省的中文分词效果,不过目前我使用的是缺省的,要配置一下。其主要配置文件为:
Solr/home目录下的collection1/conf/schema.xml,增加一个fieldType,如下:
<!-- Chinese --> <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_zh.txt" enablePositionIncrements="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseC hange="1"/> </analyzer> </fieldType> |
也有一个google的开源项目IKAnalyzer支持中文分词,但是我没有配置成功,估计需要重新修改代码。等有功夫的时候再弄。
3、 配置我们自己应用需要的field的meta描述信息,这个要按照需要,因为确实提供的meta描述(如文档的id我们可能不叫id,而叫doc_id),这个都不行的。
4、 重新启动tomcat