1、搜索工程的搭建

2、linux下solr服务的搭建

3、Solrj使用测试

4、把数据库中的数据导入索引库

5、搜索功能的实现

2.   搜索工程搭建

商城06——solr索引库搭建&solr搜索功能实现&图片显示问题解决

要实现搜索功能,需要搭建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 :

    商城06——solr索引库搭建&solr搜索功能实现&图片显示问题解决

  第九步:启动Tomcat:

    cd /usr/local/solr/apache-tomcat-7.0.52/bin/

    ./startup.sh

    查看输出:

      商城06——solr索引库搭建&solr搜索功能实现&图片显示问题解决

    网页测试: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>
View Code

相关文章: