由于solr是java开发的, 所以安装之前必须安装jdk, 并且使用tomcat作为web容器, 所以也得先安装tomcat .
开始安装
- 上传solr-4.10.3.tgz.tgz到linux指定目录(/usr/local/application), 并且解压.
tar -zxvf solr-4.10.3.tgz.tgz
- 创建目录”/usr/local/application/solr” ( 本人习惯将所有软件安装在/usr/local/application下), 后面我们将solrhome和tomcat都放在solr目录下.
安装tomcat到/usr/local/application/solr目录下
将solr.war放入tomcat中, 并启动.
复制”/usr/local/application/solr-4.10.3/dist”下的solr-4.10.3.war到tomcat中.
执行
“cp /usr/local/application/solr-4.10.3/dist/solr-4.10.3.war /usr/local/application/solr/tomcat/webapps/solr.war”
启动tomcat,就会在tomcat下出现solr一个工程目录(关闭tomcat之后, 可以将solr.war删除)- 将solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中
执行命令:cp /usr/local/application/solr-4.10.3/example/lib/ext/* /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/lib/ - 创建solrhome
在”/usr/local/application/solr”下创建solrhome目录, 复制/usr/local/application/solr-4.10.3/example中的solr(这个目录就是一个solrhome)到solrhome中,
cp -rf /usr/local/application/solr-4.10.3/example/solr /usr/local/application/solr/solrhome/ - 修改web.xml指定solrhome位置.
修改solr工程下的web.xml文件, 指定solrhome位置
- 启动tomcat访问solr工程
配置业务域
- 将中文分词器添加到工程中
将分词器jar包放入lib中:
cp ./IKAnalyzer2012FF_u1.jar /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/lib/
将扩展词典、配置文件放到solr工程的WEB-INF/classes目录下(如果不存在classes目录就创建)
cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic /usr/local/application/solr/tomcat/webapps/solr/WEB-INF/classes - 配置一个FieldType,指定使用IKAnalyzer
修改”/usr/local/application/solr/solrhome/solr/collection1/conf”目录下的schema.xml添加FieldType:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
- 配置业务域,type制定使用自定义的FieldType。
“type=text_ik”说明使用我们添加的FieldType,会进行中文分词, 而”type=string”会索引但不会进行中文分词
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
- 重启tomcat