1 Solr是什么
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Lucene是一个工具包,带有很多API,直接调用即可。
Solr基于Lucene开发的全文检索服务器,只需要进行配置就可以进行全文检索,可以独立运行。
2 Solr的安装及配置
Solr版本:4.10.3
2.1 安装步骤
第一步:安装Linux、jdk、tomcat。
第二步:把solr压缩包上传服务器,解压。
第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war。
第四步:解压war包。启动tomcat自动解压。关闭tomcat。删除solr.war。
第五步:把/root/solr-4.10.3/example/lib/ext目录下所有的jar包复制到solr工程中。
[root@taotao-solr ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
第六步:创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。
第七步:告诉solr服务器Solrhome的位置。
需要修改solr工程的web.xml文件。
第八步:启动tomcat
---启动tomcat
cd /usr/local/solr/tomcat/bin/startup.sh
---关闭tomcat
cd /usr/local/solr/tomcat/bin/shutdown.sh
---查看tomcat服务是否启动
tail -f logs/catalina.out
需要把8080端口开放
启动成功直接在真机输入ip地址:8080访问
2.2 配置业务字段
在solr中默认是中文分析器,需要手工配置。配置一个FieldType,在FieldType中指定中文分析器。
Solr中的字段必须先定义后使用。
2.2.1 中文分析器的配置
第一步:使用IK-Analyzer。把分析器的文件夹上传到服务器。
第二步:把分析器需要用到的jar包添加到solr工程中去。
第三步:需要把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath。
---/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
[root@bogon IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic
mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。
第四步:配置FieldType。需要在solrhome/collection1/conf/schema.xml中配置
2.2.2 业务字段的配置
业务字段判断标准
1、在搜索时是否需要在此字段上进行搜索,如:商品名称、商品卖点、商品描述。
2、后续的业务是否需要用到此字段,如:商品 id 。
3 维护索引库
添加:添加一个json格式的文件就可以。
修改:在solr中本没有update,只需要添加一个新的文档,要求文档 id 与被修改文档的 id 一致。原理是先删除后添加。
删除:使用 xml 格式。
删除的两种方法:一定要加commit
1、根据 id 删除
<delete>
<id>change.me</id>
</delete>
<commit/>
2、根据查询删除
<delete>
<query>*:*</query>
</delete>
<commit/>
查询