Solr无愧最强的全文检索引擎
Solr系统架构
Solr概述
下载
从Solr官方网站
http://lucene.apache.org/solr/
Solr使用指南可参考:
https://wiki.apache.org/solr/FrontPage
下载lucene-4.10.3.zip并解压:
bin:solr的运行脚本
contrib:solr的一些贡献软件/插件,用于增强solr的功能。
dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
docs:solr的API文档
example:solr工程的例子目录:
example/solr:
该目录是一个包含了默认配置信息的Solr的Core目录。
example/multicore:
该目录包含了在Solr的multicore中设置的多个Core目录。
example/webapps:
该目录中包括一个solr.war,该war可作为solr的运行实例工程。
licenses:solr相关的一些许可信息
Solr的安装及配置
运行环境:
Solr:Solr4.10.3
Jdk:jdk1.7.0_72
Tomcat:apache-tomcat-7.0.53
Solr整合tomcat
将dist\solr-4.10.3.war拷贝到Tomcat的webapp目录下改名为solr.war
启动tomcat后,solr.war自动解压,将原来的solr.war删除。拷贝example\lib\ext 目录下所有jar包到Tomcat的webapp\solr\WEB-INF\lib目录拷贝log4j.properties文件在 Tomcat下webapps\solr\WEB-INF目录中创建文件 classes文件夹,复制Solr目录下example\resources\log4j.properties至Tomcat下webapps\solr\WEB-INF\classes目录创建solrhome及配置solrcore的solrconfig.xml文件修改Tomcat目录 下webapp\solr\WEB-INF\web.xml文件,如下所示:
设置Solr home:
<!--配置jndi告诉solr工程我们的solrhome的位置-->
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/temp/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Solr界面功能
安装中文分词器
1、配置IKAnalyzer的jar包
拷贝IKAnalyzer的文件到Tomcat下Solr目录中
将IKAnalyzer2012FF_u1.jar拷贝到 Tomcat的webapps/solr/WEB-INF/lib 下。
2、IKAnalyzer的配置文件
在Tomcat的webapps/solr/WEB-INF/下创建classes目录
将IKAnalyzer.cfg.xml、ext_stopword.dic mydict.dic 复制到 Tomcat的webapps/solr/WEB-INF/classes
注意:ext_stopword.dic 和mydict.dic必须保存成无BOM的utf-8类型
3、修改schema.xml文件
修改Solr的schema.xml文件,添加FieldType:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4、设置业务系统Field
<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"/>
<!-- solr客户端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
</dependency>