1、搜索工程的搭建
2、linux下solr服务的搭建
3、Solrj使用测试
4、把数据库中的数据导入索引库
5、搜索功能的实现
2. 搜索工程搭建
要实现搜索功能,需要搭建solr服务、搜索服务工程、搜索系统(表现层的工程)
2.1. Solr服务搭建
2.1.1. Solr的环境
Solr是java开发。
solr的安装文件需要安装jdk。
安装环境Linux。
需要安装Tomcat。
2.1.2. 搭建步骤
第一步:把solr 的压缩包上传到Linux系统。
Alt+p打开sftp窗口:输入put "F:/java/ziyuan/solr-4.10.3.tgz.tgz"
第二步:解压solr :tar -xvf solr-4.10.3.tgz.tgz
新建一个目录安装solr: cd /usr/local ---> mkdir solr
第三步:安装Tomcat,解压缩即可。
第四步:把solr部署到Tomcat下。
将tomcat拷贝到solr目录下:cp apache-tomcat-7.0.52 /usr/local/solr -r
第五步:解压缩war包。可以启动Tomcat解压。
war包所在位置:solr-4.10.3/example/webapps/solr.war
将该war包拷贝到:cp solr.war /usr/local/solr/apache-tomcat-7.0.52/webapps
启动Tomcat解压:
cd /usr/local/solr/apache-tomcat-7.0.52/bin/
./startup.sh
./shutdown.sh
../webapps
rm -rf solr.war (删除掉这个war文件)
第六步:把/root/solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中。
[root@localhost webapps]# cp /root/solr-4.10.3/example/lib/ext/*.jar /usr/local/solr/apache-tomcat-7.0.52/webapps/solr/WEB-INF/lib
第七步:创建一个solrhome。/example/solr目录就是一个solrhome。复制此目录到/usr/local/solr/solrhome:
[root@localhost webapps]# cp /root/solr-4.10.3/example/solr /usr/local/solr/solrhome -r
第八步:关联solr及solrhome。需要修改solr工程的web.xml文件。
cd /usr/local/solr/apache-tomcat-7.0.52/webapps/solr/WEB-INF/
修改web.xml文件: vim web.xml :
第九步:启动Tomcat:
cd /usr/local/solr/apache-tomcat-7.0.52/bin/
./startup.sh
查看输出:
网页测试:http://192.168.25.131:8080/solr/
和windows下的配置完全一样。
2.1.3. Solr的使用
添加文档必须有id域,其他域 必须在solr的schema.xml中定义。
2.2. 配置业务域
schema.xml中定义
1、商品Id 使用schema.xml中的id域
2、商品标题
3、商品卖点
4、商品价格
5、商品图片
6、分类名称
7、商品描述
创建对应的业务域。需要制定中文分析器。创建步骤:
第一步:把中文分析器添加到solr工程中。
1、把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下
[root@localhost IKAnalyzer]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/apache-tomcat-7.0.52/webapps/solr/WEB-INF/lib
2、把扩展词典、配置文件放到solr工程的WEB-INF/classes目录下。
cd /usr/local/solr/apache-tomcat-7.0.52/webapps/solr/WEB-INF
[root@localhost WEB-INF]# mkdir classes
[root@localhost WEB-INF]# cp /root/IKAnalyzer/*.dic *.xml ./classes
第二步:配置一个FieldType,制定使用IKAnalyzer
修改schema.xml文件,添加FieldType:
cd /usr/local/solr/solrhome/collection1/conf/
vim schema.xml
<fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>
第三步:配置业务域,type制定使用自定义的FieldType。
设置业务系统Field(type="text_ik"要分词(string不分词),indexed="true"要索引,stored="true"要存储)
<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
cd /usr/local/solr/apache-tomcat-7.0.52/bin
[root@localhost bin]# ./startup.sh
2.3. 搜索服务工程搭建
可以参考taotao-manager创建。
taotao-search(聚合工程pom)
|--taotao-search-interface(jar)
|--taotao-search-Service(war)
(1)taotao-search的pom.xml:
<modules> <module>taotao-search-interface</module> <module>taotao-search-service</module> </modules> <build> <plugins> <!-- tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8084</port> <path>/</path> </configuration> </plugin> </plugins> </build>