01 搜索服务器-solr搭建配置中文分析器并使用:centos,solr,IKAnalyzer,jdk7,tomcat,maven

一、solr环境安装

[root@localhost IK_Data]# ls
apache-tomcat-7.0.47.tar.gz  IKAnalyzer.cfg.xml          mydict.dic           zookeeper-3.4.6.tar.gz
ext_stopword.dic             jdk-7u55-linux-i586.tar.gz  NOTICE.txt
IKAnalyzer2012FF_u1.jar      LICENSE.txt                 solr-4.10.3.tgz.tgz

1、jdk安装

1.1、jdk下载

[root@bogon local]#  yum install java-1.7.0-openjdk

1.2、配置环境变量

[root@bogon local]# vim /etc/profile
  • 在配置文件中添加设置
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
  • 重新加载配置文件
[root@bogon local]# source /etc/profile

2、tomcat安装

2.1、下载tomcat,并解压

[root@bogon local]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.52/bin/apache-tomcat-8.0.52.tar.gz 
[root@bogon local]# ls
apache-tomcat-8.0.52.tar.gz  games    lib      sbin       
bin                          include  lib64    share       src
etc                          java     libexec  wget-log
[root@bogon local]# tar zxf apache-tomcat-8.0.52.tar.gz 
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz

3、solr安装

3.1、将solr中的war包复制到tomcat中:

solr文件路径:/usr/local/solr/solr-4.10.3/dist

[root@localhost dist]# pwd
/usr/local/solr/solr-4.10.3/dist
[root@localhost dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war

3.2、启动tomcat解压war包:

[root@localhost dist]# cd /usr/local/solr/tomcat/bin/
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/solr/tomcat
Using CATALINA_HOME:   /usr/local/solr/tomcat
Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/jre
Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar

3.3、删除war包

[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  solr  solr.war
[root@localhost webapps]# pwd
/usr/local/solr/tomcat/webapps
[root@localhost webapps]# rm -rf solr.war 
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  solr

3.4、将example中的lib库复制到tomcat中

[root@localhost ext]# ls
jcl-over-slf4j-1.7.6.jar  log4j-1.2.17.jar     slf4j-log4j12-1.7.6.jar
jul-to-slf4j-1.7.6.jar    slf4j-api-1.7.6.jar
[root@localhost ext]# pwd
/usr/local/solr/solr-4.10.3/example/lib/ext
[root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
[root@localhost ext]# 

3.5、创建solrhome

[root@localhost example]# pwd
/usr/local/solr/solr-4.10.3/example
[root@localhost example]# cp -r solr /usr/local/solr/solrhome

3.6、关联solrhome与tomcat

  • 修改web.xml
[root@localhost WEB-INF]# pwd
/usr/local/solr/tomcat/webapps/solr/WEB-INF
[root@localhost WEB-INF]# vim web.xml 

3.7、启动tomcat:

[root@localhost /]# cd /usr/local/solr/tomcat/bin/
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/solr/tomcat
Using CATALINA_HOME:   /usr/local/solr/tomcat
Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/jre
Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar

3.8、打开防火墙:

[root@localhost bin]#  firewall-cmd --permanent --zone=public --add-port=8080/tcp
success
[root@localhost bin]# firewall-cmd --reload 
success
[root@localhost bin]# 

3.9、测试:访问地址:

http://192.168.58.247:8080/solr/#/

三、给solr配置中文分析器

1、将jar包复制到tomcat对应的solr的lib文件夹下面:

  • 文件夹地址:solr/tomcat/webapps/solr/WEB-INF/lib/
[root@localhost IK_Data]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

2、复制配置文件到classes文件夹下

[root@localhost IK_Data]# mkdir /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
[root@localhost IK Analyzer 2012FF_hf1]# cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes/

3、修改managed-schema 配置文件

  • 地址:/usr/local/solr/solrhome/configsets/_default/conf/schema.xml
[root@localhost IK_Data]# cd /usr/local/solr/solrhome/collection1/conf/
[root@localhost conf]# vim schema.xml 
  • 添加内容
 <fieldType name="text_ik" class="solr.TextField"> 

                <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
        </fieldType>

4、添加需要关联的数据库字段

  • 地址:/usr/local/solr/solrhome/configsets/_default/conf/schema.xml
         <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_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"/>

5、重启服务器:

[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/solr/tomcat
Using CATALINA_HOME:   /usr/local/solr/tomcat
Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/jre
Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
[root@localhost bin]# pwd
/usr/local/solr/tomcat/bin

6、访问地址:

http://192.168.58.247:8080/solr/#/

五、测试使用solr

  • 采用maven方式创建项目

1、导入jar包:

         <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>5.5.3</version>
        </dependency>

2、java测试代码

    @Test
    public void addData() throws Exception{
        HttpSolrServer solrServer = new HttpSolrServer("http://192.168.58.247:8080/solr/");
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id","solrtest01");
        document.addField("item_title","测试数据——title");
        document.addField("item_sell_point","测试数据--sell-point");
        solrServer.add(document);
        solrServer.commit();
    }
    @Test
    public void queryData() throws Exception{
        HttpSolrServer solrServer = new HttpSolrServer("http://192.168.58.247:8080/solr/");
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        QueryResponse response = solrServer.query(query);
        SolrDocumentList list = response.getResults();
        for (SolrDocument document: list  ) {
            System.out.println(document.get("id"));
            System.out.println(document.get("item_title"));
            System.out.println(document.get("item_sell_point"));
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_34231253/article/details/81071376