• Solr单机版的安装与使用


     1 1、使用Solr实现。
     2 基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。
     3 
     4 2、什么是Solr。
     5 Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、
     6 搜索性能进行了优化。
     7 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,
     8 Solr根据xml文档添加、删除、更新索引 。Solr搜索只需要发送 HTTP GET 请求,然后对 Solr返回Xml、json等格式的查询结果进行解析,组织页面布局。
     9 Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
    10 
    11 3、Solr与Lucene的区别。
    12 Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的
    13 工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
    14 Solr的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜
    15 索功能。

     1、Solr的运行需要java环境(Solr是java开发实现的,Solr相当于是一个web的war工程,需要部署到容器里面,可以选择jetty或者tomcat),所以自己先安装jdk吧,这里安装的是jdk1.7.0_55。

    需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本教程使用Tocmat作为Servlet容器。

    安装过程步骤大致如下所示:

    1 [root@localhost package]# ls
    2 apache-tomcat-7.0.47.tar.gz  jdk-7u55-linux-i586.tar.gz  solr-4.10.3.tgz.tgz
    3 [root@localhost package]# tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/soft/
    4 [root@localhost package]# vim /etc/profile
    5 [root@localhost package]# source /etc/profile
    6 [root@localhost package]# java
    7 [root@localhost package]# javac
    8 [root@localhost package]# java -version

    2、将Solr的压缩包上传到服务器上面,solr-4.10.3.tgz.tgz,然后进行解压缩操作。

    注意:Solr的目录介绍。

      a、bin里面命令是启动solr的二进制命令,一般不适用此中方式启动,bin里面的命令会默认启动solr服务(使用的是jetty容器,jetty是一个servlet容器,直接启动bin/solr也可以启动,但是一般不适用)。

      b、contrib是扩展包。

      c、dist里面有solr的war包(solr-4.10.3.war),可以将solr部署到tomcat服务器中。solr-solrj-4.10.3.jar是solr的客户端。

      d、docs是文档。

      e、example是案例,example里面的solr可以作为solr home(solr的家,里面保存了solr服务所有的配置文件、solr库)。

    你可以使用solr和jetty整合,也可以和tomcat整合,因为比较熟悉tomcat,所以这里整合tomcat。

    [root@localhost package]# tar -zxvf solr-4.10.3.tgz.tgz -C /home/hadoop/soft/

     1 [root@localhost package]# ls
     2 apache-tomcat-7.0.47.tar.gz  jdk-7u55-linux-i586.tar.gz  solr-4.10.3.tgz.tgz
     3 [root@localhost package]# tar -zxvf solr-4.10.3.tgz.tgz -C /home/hadoop/soft/
     4 [root@localhost package]# ls
     5 apache-tomcat-7.0.47.tar.gz  jdk-7u55-linux-i586.tar.gz  solr-4.10.3.tgz.tgz
     6 [root@localhost package]# cd ..
     7 [root@localhost hadoop]# ls
     8 package  soft
     9 [root@localhost hadoop]# cd soft/
    10 [root@localhost soft]# ls
    11 jdk1.7.0_55  solr-4.10.3
    12 [root@localhost solr-4.10.3]# ls
    13 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt
    14 [root@localhost solr-4.10.3]#

    3、安装tomcat服务器。

    [root@localhost package]# tar -zxvf apache-tomcat-7.0.47.tar.gz -C /home/hadoop/soft/

    1 [root@localhost package]# ls
    2 apache-tomcat-7.0.47.tar.gz  jdk-7u55-linux-i586.tar.gz  solr-4.10.3.tgz.tgz
    3 [root@localhost package]# tar -zxvf apache-tomcat-7.0.47.tar.gz -C /home/hadoop/soft/

    然后将tomcat安装到/user/local目录里面:

    1 [root@localhost soft]# mkdir /usr/local/solr
    2 [root@localhost soft]# cp -r apache-tomcat-7.0.47/ /usr/local/solr/tomcat
    3 [root@localhost soft]# cd /usr/local/solr/tomcat/
    4 [root@localhost tomcat]# ls
    5 bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
    6 [root@localhost tomcat]# 

    4、部署好tomcat以后,将war包部署到tomcat下面即可。然后进行解压缩solr操作,启动tomcat就可以完成solr的解压缩操作。

    1 [root@localhost tomcat]# cp /home/hadoop/soft/solr-4.10.3/dist/solr-4.10.3.war /usr/local/solr/tomcat/webapps/
    2 You have mail in /var/spool/mail/root
    3 [root@localhost tomcat]# cd /usr/local/solr/tomcat/webapps/
    4 [root@localhost webapps]# ls
    5 docs  examples  host-manager  manager  ROOT  solr-4.10.3.war
    6 [root@localhost webapps]#

    启动tomcat完成解压缩solr的war包。

     1 [root@localhost webapps]# cd /usr/local/solr/tomcat/
     2 [root@localhost tomcat]# ls
     3 bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
     4 [root@localhost tomcat]# bin/startup.sh 
     5 Using CATALINA_BASE:   /usr/local/solr/tomcat
     6 Using CATALINA_HOME:   /usr/local/solr/tomcat
     7 Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
     8 Using JRE_HOME:        /home/hadoop/soft/jdk1.7.0_55
     9 Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
    10 [root@localhost tomcat]# tail -f logs/catalina.out 
    11 Sep 01, 2019 5:16:20 AM org.apache.catalina.startup.HostConfig deployDirectory
    12 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/manager
    13 Sep 01, 2019 5:16:21 AM org.apache.catalina.startup.HostConfig deployDirectory
    14 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/ROOT
    15 Sep 01, 2019 5:16:21 AM org.apache.catalina.startup.HostConfig deployDirectory
    16 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/examples
    17 Sep 01, 2019 5:16:21 AM org.apache.catalina.startup.HostConfig deployDirectory
    18 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/host-manager
    19 Sep 01, 2019 5:16:21 AM org.apache.catalina.startup.HostConfig deployDirectory
    20 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/docs
    21 Sep 01, 2019 5:16:21 AM org.apache.coyote.AbstractProtocol start
    22 INFO: Starting ProtocolHandler ["http-bio-8080"]
    23 Sep 01, 2019 5:16:21 AM org.apache.coyote.AbstractProtocol start
    24 INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    25 Sep 01, 2019 5:16:21 AM org.apache.catalina.startup.Catalina start
    26 INFO: Server startup in 6031 ms

    可以看到solr的war包已经解压缩了。

     然后关闭solr,将一些jar包复制到solr里面。关闭tomcat,删除webapps里面的solr-4.10.3.war这个war 包,你可以将solr-4.10.3.war这个war包删除了或者留着也行。删除的话,一定要先关闭tomcat,然后进行删除war包操作。

    1 bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
    2 [root@localhost tomcat]# bin/shutdown.sh 
    3 Using CATALINA_BASE:   /usr/local/solr/tomcat
    4 Using CATALINA_HOME:   /usr/local/solr/tomcat
    5 Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
    6 Using JRE_HOME:        /home/hadoop/soft/jdk1.7.0_55
    7 Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
    8 [root@localhost tomcat]# 

     复制一些日志相关的jar包加到solr里面。

     1 [root@localhost soft]# cd solr-4.10.3/
     2 [root@localhost solr-4.10.3]# ls
     3 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt
     4 [root@localhost solr-4.10.3]# clear
     5 [root@localhost solr-4.10.3]# ls
     6 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt
     7 [root@localhost solr-4.10.3]# cd example/
     8 [root@localhost example]# ls
     9 contexts  etc  example-DIH  exampledocs  example-schemaless  lib  logs  multicore  README.txt  resources  scripts  solr  solr-webapp  start.jar  webapps
    10 [root@localhost example]# cd lib/
    11 [root@localhost lib]# ls
    12 ext                                      jetty-http-8.1.10.v20130312.jar  jetty-security-8.1.10.v20130312.jar  jetty-util-8.1.10.v20130312.jar    servlet-api-3.0.jar
    13 jetty-continuation-8.1.10.v20130312.jar  jetty-io-8.1.10.v20130312.jar    jetty-server-8.1.10.v20130312.jar    jetty-webapp-8.1.10.v20130312.jar
    14 jetty-deploy-8.1.10.v20130312.jar        jetty-jmx-8.1.10.v20130312.jar   jetty-servlet-8.1.10.v20130312.jar   jetty-xml-8.1.10.v20130312.jar
    15 [root@localhost lib]# cd ext/
    16 [root@localhost ext]# ls
    17 jcl-over-slf4j-1.7.6.jar  jul-to-slf4j-1.7.6.jar  log4j-1.2.17.jar  slf4j-api-1.7.6.jar  slf4j-log4j12-1.7.6.jar
    18 [root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/lib/
    19 [root@localhost ext]# cd /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/lib/
    20 [root@localhost lib]# ls
    21 antlr-runtime-3.5.jar          commons-lang-2.6.jar                 hppc-0.5.2.jar            lucene-analyzers-common-4.10.3.jar    lucene-join-4.10.3.jar         org.restlet-2.1.1.jar              wstx-asl-3.2.7.jar
    22 asm-4.1.jar                    concurrentlinkedhashmap-lru-1.2.jar  httpclient-4.3.1.jar      lucene-analyzers-kuromoji-4.10.3.jar  lucene-memory-4.10.3.jar       org.restlet.ext.servlet-2.1.1.jar  zookeeper-3.4.6.jar
    23 asm-commons-4.1.jar            dom4j-1.6.1.jar                      httpcore-4.3.jar          lucene-analyzers-phonetic-4.10.3.jar  lucene-misc-4.10.3.jar         protobuf-java-2.5.0.jar
    24 commons-cli-1.2.jar            guava-14.0.1.jar                     httpmime-4.3.1.jar        lucene-codecs-4.10.3.jar              lucene-queries-4.10.3.jar      slf4j-api-1.7.6.jar
    25 commons-codec-1.9.jar          hadoop-annotations-2.2.0.jar         jcl-over-slf4j-1.7.6.jar  lucene-core-4.10.3.jar                lucene-queryparser-4.10.3.jar  slf4j-log4j12-1.7.6.jar
    26 commons-configuration-1.6.jar  hadoop-auth-2.2.0.jar                joda-time-2.2.jar         lucene-expressions-4.10.3.jar         lucene-spatial-4.10.3.jar      solr-core-4.10.3.jar
    27 commons-fileupload-1.2.1.jar   hadoop-common-2.2.0.jar              jul-to-slf4j-1.7.6.jar    lucene-grouping-4.10.3.jar            lucene-suggest-4.10.3.jar      solr-solrj-4.10.3.jar
    28 commons-io-2.3.jar             hadoop-hdfs-2.2.0.jar                log4j-1.2.17.jar          lucene-highlighter-4.10.3.jar         noggit-0.5.jar                 spatial4j-0.4.1.jar
    29 [root@localhost lib]# 

    操作如下所示:

     复制完jar包,开始配置solr home。

     1 [root@localhost solr-4.10.3]# cd /home/hadoop/soft/solr-4.10.3/
     2 [root@localhost solr-4.10.3]# ls
     3 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt
     4 [root@localhost solr-4.10.3]# clear
     5 [root@localhost solr-4.10.3]# ls
     6 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt
     7 [root@localhost solr-4.10.3]# cd example/
     8 [root@localhost example]# ls
     9 contexts  etc  example-DIH  exampledocs  example-schemaless  lib  logs  multicore  README.txt  resources  scripts  solr  solr-webapp  start.jar  webapps
    10 [root@localhost example]# cp -r solr /usr/local/solr/solrhome 
    11 [root@localhost example]# cd /usr/local/solr/solrhome/
    12 [root@localhost solrhome]# ls
    13 bin  collection1  README.txt  solr.xml  zoo.cfg
    14 [root@localhost solrhome]#

     然后进行solr home的配置文件配置,solr也已经安装好了,solrhome也已经配置好了,然后将将solr和solrhome进行关联,建立关系,solr不知道solrhome在那里,那么

    配置一下,告诉solr,solrhome在那里。操作方式有,可以修改tomcat的配置文件,或者去修改solr的web.xml,这种方式比较简单。建议使用。

    1 [root@localhost ~]# ls
    2 anaconda-ks.cfg  Desktop  Documents  Downloads  install.log  install.log.syslog  Music  Pictures  Public  Templates  Videos
    3 [root@localhost ~]# cd /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/
    4 [root@localhost WEB-INF]# ls
    5 lib  weblogic.xml  web.xml
    6 [root@localhost WEB-INF]# vim web.xml

    配置方式如下所示:

    1 <env-entry>
    2   <env-entry-name>solr/home</env-entry-name>
    3   <!-- <env-entry-value>/put/your/solr/home/here</env-entry-value> -->
    4   <env-entry-value>/usr/local/solr/solrhome/</env-entry-value>
    5   <env-entry-type>java.lang.String</env-entry-type>
    6 </env-entry>

    这样你的solr就已经配置好了,然后启动你的tomcat即可。

    可以将solr的log4j.properties文件在Tomcat下webapps/solr/WEB-INF目录中创建文件classes文件夹,
    复制Solr目录下/home/hadoop/soft/solr-4.10.3/example/resources至Tomcat下webapps/solr/WEB-INF/classes目录

     1 [root@localhost WEB-INF]# cd /usr/local/solr/tomcat/
     2 [root@localhost tomcat]# ls
     3 bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
     4 [root@localhost tomcat]# clear
     5 [root@localhost tomcat]# bin/startup.sh 
     6 Using CATALINA_BASE:   /usr/local/solr/tomcat
     7 Using CATALINA_HOME:   /usr/local/solr/tomcat
     8 Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
     9 Using JRE_HOME:        /home/hadoop/soft/jdk1.7.0_55
    10 Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
    11 [root@localhost tomcat]# tail -f logs/catalina.out 
    12 Sep 03, 2019 5:32:27 AM org.apache.coyote.AbstractProtocol init
    13 INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    14 Sep 03, 2019 5:32:27 AM org.apache.catalina.startup.Catalina load
    15 INFO: Initialization processed in 1850 ms
    16 Sep 03, 2019 5:32:28 AM org.apache.catalina.core.StandardService startInternal
    17 INFO: Starting service Catalina
    18 Sep 03, 2019 5:32:28 AM org.apache.catalina.core.StandardEngine startInternal
    19 INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
    20 Sep 03, 2019 5:32:28 AM org.apache.catalina.startup.HostConfig deployWAR
    21 INFO: Deploying web application archive /usr/local/solr/tomcat/webapps/solr-4.10.3.war
    22 log4j:WARN No appenders could be found for logger (org.apache.solr.client.solrj.impl.HttpClientUtil).
    23 log4j:WARN Please initialize the log4j system properly.
    24 log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    25 Sep 03, 2019 5:32:41 AM org.apache.catalina.startup.HostConfig deployDirectory
    26 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/manager
    27 Sep 03, 2019 5:32:42 AM org.apache.catalina.startup.HostConfig deployDirectory
    28 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/ROOT
    29 Sep 03, 2019 5:32:42 AM org.apache.catalina.startup.HostConfig deployDirectory
    30 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/examples
    31 Sep 03, 2019 5:32:42 AM org.apache.catalina.startup.HostConfig deployDirectory
    32 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/host-manager
    33 Sep 03, 2019 5:32:42 AM org.apache.catalina.startup.HostConfig deployDirectory
    34 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/docs
    35 Sep 03, 2019 5:32:42 AM org.apache.coyote.AbstractProtocol start
    36 INFO: Starting ProtocolHandler ["http-bio-8080"]
    37 Sep 03, 2019 5:32:42 AM org.apache.coyote.AbstractProtocol start
    38 INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    39 Sep 03, 2019 5:32:42 AM org.apache.catalina.startup.Catalina start
    40 INFO: Server startup in 14797 ms

    可以查看启动信息,然后启动完成了以后可以通过页面查看solr的信息:

    注意:访问地址:http://192.168.110.142:8080/solr-4.10.3
    其中8080是tomcat的端口号,然后solr-4.10.3是webapps下面的solr项目的名称,你可以修改为solr,这也访问比较方便些。 

     关于solr的collection,一个collection就是一个独立的索引库。不同的collection之间的索引库没有关系。

     如何将mysql中的业务数据导入到solr里面呢?

      首先判断出需要将哪些字段添加到solr里面,然后将这些字段加到索引库里面,solr里面有一个要求,添加一个文档的时候,这个文档必须有一个id,如果要添加文档,那么这些域必须在schema.xml里面定义好,避免随便添加其他字段的情况,在schema.xml里面定义的话,需要修改一下schema.xml的配置文件,在这里面定义我们自己的业务域,由于我们使用的是中文,所以要指定一个中文分析器,先将业务域定义好(判断好的哪些字段,定义业务域),然后向这里面导入数据就可以了,中文分析器要使用IK Analyzer 2012FF_hf1。

    注意:IKAnalyzer2012FF_u1.jar这个是jar包。
    ext_stopword.dic这个是提供词词典
    IKAnalyzer.cfg.xml这个是配置文件
    LICENSE.txt
    mydict.dic这个是扩展词词典
    IKAnalyzer中文分词器V2012_FF使用手册.pdf

      先将这个jar包加到自己的工程里面去。然后在schema.xml配置文件里面定义一个fieldType, 指定我们的分析器使用的是IK,然后定义域的时候指定使用的fieldType是我们自己定义好的fieldType。然后这个域就可以使用我们自己指定的中文分析器了。

      首先将IK Analyzer 2012FF_hf1这个IK传到自己的服务器上面。

     1 [root@localhost package]# ll
     2 total 292832
     3 -rwxrw-rw-. 1 root root   8234674 Jul 27 22:27 apache-tomcat-7.0.47.tar.gz
     4 drwxr-xr-x. 3 root root      4096 Sep  5 05:34 IK Analyzer 2012FF_hf1
     5 -rw-r--r--. 1 root root   2142180 Sep  5 05:34 IK Analyzer 2012FF_hf1.rar
     6 -rwxrw-rw-. 1 root root 139463702 Jul 27 22:35 jdk-7u55-linux-i586.tar.gz
     7 -rwxrw-rw-. 1 root root 150010621 Jul 27 22:33 solr-4.10.3.tgz.tgz
     8 [root@localhost package]# cd IK Analyzer 2012FF_hf1
     9 [root@localhost IK Analyzer 2012FF_hf1]# ls
    10 doc  ext_stopword.dic  IKAnalyzer2012FF_u1.jar  IKAnalyzer.cfg.xml  IKAnalyzer???ķִ???V2012_FFʹ???ֲ?.pdf  LICENSE.txt  mydict.dic  NOTICE.txt
    11 [root@localhost IK Analyzer 2012FF_hf1]# ll
    12 total 2004
    13 drwxr-xr-x. 5 root root    4096 Sep  5 05:34 doc
    14 -rw-r--r--. 1 root root     168 Sep  5 05:34 ext_stopword.dic
    15 -rw-r--r--. 1 root root 1165908 Sep  5 05:34 IKAnalyzer2012FF_u1.jar
    16 -rw-r--r--. 1 root root     419 Sep  5 05:34 IKAnalyzer.cfg.xml
    17 -rw-r--r--. 1 root root  841268 Sep  5 05:34 IKAnalyzer???ķִ???V2012_FFʹ???ֲ?.pdf
    18 -rw-r--r--. 1 root root   17778 Sep  5 05:34 LICENSE.txt
    19 -rw-r--r--. 1 root root      34 Sep  5 05:34 mydict.dic
    20 -rw-r--r--. 1 root root     278 Sep  5 05:34 NOTICE.txt
    21 [root@localhost IK Analyzer 2012FF_hf1]# 

     然后将IKAnalyzer2012FF_u1.jar这个jar包添加到solr里面。

    1 [root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/lib/
    2 [root@localhost IK Analyzer 2012FF_hf1]# ll /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/lib/IKAnalyzer2012FF_u1.jar
    3 -rw-r--r--. 1 root root 1165908 Sep  5 05:39 /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/lib/IKAnalyzer2012FF_u1.jar
    4 [root@localhost IK Analyzer 2012FF_hf1]# 

    然后将ext_stopword.dic这个是提供词词典,IKAnalyzer.cfg.xml这个是配置文件,mydict.dic这个是扩展词词典添加到classpath里面。对于这个solr项目的classpath相当于在WEB-INF下面的classes。

     1 total 16
     2 drwxr-xr-x. 2 root root 4096 Sep  5 05:39 lib
     3 -rw-r--r--. 1 root root 1210 Dec  1  2014 weblogic.xml
     4 -rw-r--r--. 1 root root 7117 Sep  3 05:30 web.xml
     5 [root@localhost IK Analyzer 2012FF_hf1]# mkdir /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/clases
     6 [root@localhost IK Analyzer 2012FF_hf1]# 
     7 [root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/classes
     8 [root@localhost IK Analyzer 2012FF_hf1]# ll  /usr/local/solr/tomcat/webapps/solr-4.10.3/WEB-INF/classes
     9 total 12
    10 -rw-r--r--. 1 root root 168 Sep  5 05:44 ext_stopword.dic
    11 -rw-r--r--. 1 root root 419 Sep  5 05:44 IKAnalyzer.cfg.xml
    12 -rw-r--r--. 1 root root  34 Sep  5 05:44 mydict.dic
    13 [root@localhost IK Analyzer 2012FF_hf1]#

    然后,这个中文分析器就配置好了。然后呢,开始定义fieldType,然后指定我们使用这个中文分析器,在solrhome里面定义我们的fieldType。路径是这里,/usr/local/solr/solrhome/collection1/conf,然后这个conf里面两个配置文件,两个配置文件比较重要schema.xml和solrconfig.xml。solrconfig.xml这个配置文件,配置了solr服务的相关配置,schema.xml配置了所有使用到的业务域(业务域和业务域的类型)。

     1 [root@localhost ~]# cd /usr/local/solr/solrhome/
     2 [root@localhost solrhome]# ls
     3 bin  collection1  README.txt  solr.xml  zoo.cfg
     4 [root@localhost solrhome]# ll
     5 total 20
     6 drwxr-xr-x. 2 root root 4096 Sep  1 05:27 bin
     7 drwxr-xr-x. 4 root root 4096 Sep  3 05:32 collection1
     8 -rw-r--r--. 1 root root 2473 Sep  1 05:27 README.txt
     9 -rw-r--r--. 1 root root 1715 Sep  1 05:27 solr.xml
    10 -rw-r--r--. 1 root root  501 Sep  1 05:27 zoo.cfg
    11 [root@localhost solrhome]# cd collection1/
    12 [root@localhost collection1]# ls
    13 conf  core.properties  data  README.txt
    14 [root@localhost collection1]# cd conf/
    15 [root@localhost conf]# ls
    16 admin-extra.html              clustering    lang                         protwords.txt                            _schema_analysis_synonyms_english.json  solrconfig.xml  synonyms.txt      xslt
    17 admin-extra.menu-bottom.html  currency.xml  mapping-FoldToASCII.txt      _rest_managed.json                       schema.xml                              spellings.txt   update-script.js
    18 admin-extra.menu-top.html     elevate.xml   mapping-ISOLatin1Accent.txt  _schema_analysis_stopwords_english.json  scripts.conf                            stopwords.txt   velocity
    19 [root@localhost conf]# ll
    20 total 292
    21 -rw-r--r--. 1 root root  1068 Sep  1 05:27 admin-extra.html
    22 -rw-r--r--. 1 root root   928 Sep  1 05:27 admin-extra.menu-bottom.html
    23 -rw-r--r--. 1 root root   926 Sep  1 05:27 admin-extra.menu-top.html
    24 drwxr-xr-x. 3 root root  4096 Sep  1 05:27 clustering
    25 -rw-r--r--. 1 root root  3974 Sep  1 05:27 currency.xml
    26 -rw-r--r--. 1 root root  1348 Sep  1 05:27 elevate.xml
    27 drwxr-xr-x. 2 root root  4096 Sep  1 05:27 lang
    28 -rw-r--r--. 1 root root 78514 Sep  1 05:27 mapping-FoldToASCII.txt
    29 -rw-r--r--. 1 root root  2868 Sep  1 05:27 mapping-ISOLatin1Accent.txt
    30 -rw-r--r--. 1 root root   873 Sep  1 05:27 protwords.txt
    31 -rw-r--r--. 1 root root    33 Sep  1 05:27 _rest_managed.json
    32 -rw-r--r--. 1 root root   450 Sep  1 05:27 _schema_analysis_stopwords_english.json
    33 -rw-r--r--. 1 root root   172 Sep  1 05:27 _schema_analysis_synonyms_english.json
    34 -rw-r--r--. 1 root root 60689 Sep  1 05:27 schema.xml
    35 -rw-r--r--. 1 root root   921 Sep  1 05:27 scripts.conf
    36 -rw-r--r--. 1 root root 74827 Sep  1 05:27 solrconfig.xml
    37 -rw-r--r--. 1 root root    13 Sep  1 05:27 spellings.txt
    38 -rw-r--r--. 1 root root   781 Sep  1 05:27 stopwords.txt
    39 -rw-r--r--. 1 root root  1119 Sep  1 05:27 synonyms.txt
    40 -rw-r--r--. 1 root root  1416 Sep  1 05:27 update-script.js
    41 drwxr-xr-x. 2 root root  4096 Sep  1 05:27 velocity
    42 drwxr-xr-x. 2 root root  4096 Sep  1 05:27 xslt
    43 [root@localhost conf]# 

    然后开始配置schema.xml。路径是这里,/usr/local/solr/solrhome/collection1/conf,然后这个conf里面两个配置文件,两个配置文件比较重要schema.xml和solrconfig.xml。solrconfig.xml这个配置文件,配置了solr服务的相关配置,schema.xml配置了所有使用到的业务域。
    定义一个fieldType可以指定一个分析的,然后这个fieldType的类型是solr.TextField,solr.TextField只有这种类型可以定义分析器。

    步骤如下所示,下面是举例说明,和实际自己操作略有不同。

    第一步:首先需要在types结点内定义一个FieldType子结点,包括name,class,等参数,name就是这个FieldType的名称,class指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为。在FieldType定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤。

    1 <!-- IKAnalyzer-->
    2 <fieldType name="text_ik" class="solr.TextField">
    3     <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    4     <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    5 </fieldType>

    第二步,Field,FieldType定义好后就可以在fields结点内定义具体的field,filed定义包括n ame,type(即FieldType),indexed(是否被索引),stored(是否被储存),multi Valued(是否有多个值)等。

    1 <!--IKAnalyzer Field-->
    2 <field name="title_ik" type="text_ik" indexed="true" stored="true" />
    3 <field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

    开始配置业务域(业务域的定义),如下所示:

     1 <!-- IKAnalyzer-->
     2     <!-- 域的定义和域的类型,然后就可以定义自己的业务域了 -->
     3     <!-- 自定义分析器,name是自己的名称,不要重复-->
     4     <!-- 定义自己的fieldType,然后指定了name为text_ik,类型是solr.TextField -->
     5     <fieldType name="text_ik" class="solr.TextField">
     6         <!--指定analyzer是IK analyzer-->
     7       <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
     8     </fieldType>
     9     
    10     <!-- 定义自己的业务域 -->
    11     <!-- 原本solr里面已经有了id,所以这个id可以不用定义了 -->
    12     <!-- String类型是不分词的,但是建立索引的。Text类型是既分词也建立索引。 -->
    13     <field name="item_title" type="text_ik" indexed="true" stored="true"/>
    14     <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
    15     <field name="item_price"  type="long" indexed="true" stored="true"/>
    16     <field name="item_image" type="string" indexed="false" stored="true" />
    17     <field name="item_category_name" type="string" indexed="true" stored="true" />
    18     <field name="item_desc" type="text_ik" indexed="true" stored="false" />
    19     
    20     <!-- item_keywords建立了几个复制域。复制域就是把某几个域都复制到这里面去,进行统一管理。然后这个域就包含了复制域的全部内容。将来搜索的时候只要搜索包含复制域的即可。 -->
    21     <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
    22     <copyField source="item_title" dest="item_keywords"/>
    23     <copyField source="item_sell_point" dest="item_keywords"/>
    24     <copyField source="item_category_name" dest="item_keywords"/>

    业务数据SQL编写。首先重启你的tomcat。配置好业务域,重启完了tomct,如何看自己的业务域是否好使呢。如下所示:

    fieldType的分词效果,找到自定义分析器text_ik。

     然后呢,测试item_title的分词效果。

    如上效果,说明你的业务域就已经生效了。有了业务域,需要将数据从数据库导入到索引库中去。这里不推荐使用Dataimport进行数据导入的。

    5、什么是solrJ?

    答:solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务。

    6、创建索引,使用SolrJ创建索引,通过调用solrJ提供的API请求solr服务,Document通过solrInputDocument进行构建。使用solrj可以将数据库的数据导入到索引库里面的。

    注意:solr里面的更新操作就是新增,根据id查找到该数据,然后将它删除了,再添加一条新的数据。

    说明:根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。

     1 package com.taotao.search.service;
     2 
     3 import java.io.IOException;
     4 
     5 import org.apache.solr.client.solrj.SolrServer;
     6 import org.apache.solr.client.solrj.SolrServerException;
     7 import org.apache.solr.client.solrj.impl.HttpSolrServer;
     8 import org.apache.solr.common.SolrInputDocument;
     9 import org.junit.Test;
    10 
    11 /**
    12  * 
    13  * @ClassName: TaoTaoSolrJ.java
    14  * @author: biehl
    15  * @since: 2019年9月7日 下午2:30:05
    16  * @Copyright: ©2019 biehl 版权所有
    17  * @version: 0.0.1
    18  * @Description:
    19  */
    20 public class TaoTaoSolrJ {
    21 
    22     @Test
    23     public void taotaoSolrJ() {
    24         try {
    25             // 向solr里面添加文档
    26             // 1、创建SolrServer对象。创建一个HttpSolrServer对象
    27             SolrServer server = new HttpSolrServer("http://192.168.110.142:8080/solr-4.10.3/collection1");
    28             // 2、需要指定Solr服务的url
    29             // 3、创建一个文档对象SolrInputDocument
    30             SolrInputDocument document = new SolrInputDocument();
    31             // 4、向文档中添加域,必须写id域,域的名称必须在schema.xml中定义
    32             document.addField("id", "test002");
    33             document.addField("item_title", "测试商品1");
    34             document.addField("item_sell_point", "测试商品好的很");
    35             document.addField("item_price", 1000);
    36             document.addField("item_image", "testimg");
    37             document.addField("item_category_name", "搞什么啊");
    38             document.addField("item_desc", "你妹的");
    39 
    40             // 5、把文档对象写入到索引库中
    41             server.add(document);
    42             // 6、提交
    43             server.commit();
    44         } catch (SolrServerException e) {
    45             e.printStackTrace();
    46         } catch (IOException e) {
    47             e.printStackTrace();
    48         }
    49 
    50     }
    51     
    52     @Test
    53     public void taotaoSolrJDeleteById() {
    54         try {
    55             // 向solr里面添加文档
    56             // 1、创建SolrServer对象。创建一个HttpSolrServer对象
    57             SolrServer server = new HttpSolrServer("http://192.168.110.142:8080/solr-4.10.3/collection1");
    58             
    59             //2、 删除操作
    60             server.deleteById("test001");
    61             
    62             // 3、提交
    63             server.commit();
    64         } catch (SolrServerException e) {
    65             e.printStackTrace();
    66         } catch (IOException e) {
    67             e.printStackTrace();
    68         }
    69 
    70     }
    71     
    72     @Test
    73     public void taotaoSolrJDeleteByQuery() {
    74         try {
    75             // 向solr里面添加文档
    76             // 1、创建SolrServer对象。创建一个HttpSolrServer对象
    77             SolrServer server = new HttpSolrServer("http://192.168.110.142:8080/solr-4.10.3/collection1");
    78             
    79             //2、 删除操作
    80             server.deleteByQuery("id:test002");
    81             
    82             // 3、提交
    83             server.commit();
    84         } catch (SolrServerException e) {
    85             e.printStackTrace();
    86         } catch (IOException e) {
    87             e.printStackTrace();
    88         }
    89 
    90     }
    91 
    92 }

    点击Execute Query就可以进行查询操作了的。

    删除以后如下所示:

    查询solr的方法使用:

     1 package com.taotao.search.service;
     2 
     3 import java.io.IOException;
     4 import java.util.List;
     5 import java.util.Map;
     6 
     7 import org.apache.solr.client.solrj.SolrQuery;
     8 import org.apache.solr.client.solrj.SolrServer;
     9 import org.apache.solr.client.solrj.SolrServerException;
    10 import org.apache.solr.client.solrj.impl.HttpSolrServer;
    11 import org.apache.solr.client.solrj.response.QueryResponse;
    12 import org.apache.solr.common.SolrDocument;
    13 import org.apache.solr.common.SolrDocumentList;
    14 import org.apache.solr.common.SolrInputDocument;
    15 import org.junit.Test;
    16 
    17 /**
    18  * 
    19  * @ClassName: TaoTaoSolrJ.java
    20  * @author: biehl
    21  * @since: 2019年9月7日 下午2:30:05
    22  * @Copyright: ©2019 biehl 版权所有
    23  * @version: 0.0.1
    24  * @Description:
    25  */
    26 public class TaoTaoSolrJ {
    27 
    28 
    29     @Test
    30     public void searchDocument() {
    31         try {
    32             // 1、创建一个SolrServer对象
    33             SolrServer solrServer = new HttpSolrServer("http://192.168.110.142:8080/solr-4.10.3/collection1");
    34             // 2、创建一个SolrQuery对象
    35             SolrQuery solrQuery = new SolrQuery();
    36             // 3、设置查询条件,过滤条件,分页条件,排序条件,高亮
    37             // key的q就是指查询条件。
    38             // solrQuery.set("q", "*:*"); //等价于solrQuery.setQuery("*:*");
    39             // 查询所有的不能指定高亮的。
    40             // solrQuery.setQuery("*:*");// *:*是查询出所有的。
    41             // 这里没有指定在那里域上面进行搜索,所以需要指定默认搜索域
    42             solrQuery.setQuery("手机");
    43             // 分页默认是0-10。分页条件。
    44             solrQuery.setStart(0);// 起始数
    45             solrQuery.setRows(20);// 查询出多少条
    46             // 设置默认搜索域。
    47             solrQuery.set("df", "item_keywords");
    48             // 设置高亮。
    49             solrQuery.setHighlight(true);// 开启高亮
    50             // 设置高亮显示的域
    51             solrQuery.addHighlightField("item_title");
    52             // 设置高亮显示的前缀和后缀
    53             solrQuery.setHighlightSimplePre("<em>");
    54             solrQuery.setHighlightSimplePost("</em>");
    55 
    56             // 4、执行查询,得到一个Response对象
    57             QueryResponse response = solrServer.query(solrQuery);
    58 
    59             // 5、取出查询结果总记录数
    60             SolrDocumentList solrDocumentList = response.getResults();
    61             // 查询出结果总记录数
    62             System.out.println("查询结果总记录数: " + solrDocumentList.getNumFound());
    63 
    64             for (SolrDocument solrDocument : solrDocumentList) {
    65                 System.out.println("id : " + solrDocument.get("id"));
    66                 // 取出高亮显示
    67                 Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
    68                 List<String> list = highlighting.get(solrDocument.get("id")).get("item_title");
    69                 String itemTitle = "";
    70                 if (list != null && list.size() > 0) {
    71                     itemTitle = list.get(0);
    72                 } else {
    73                     itemTitle = (String) solrDocument.get("item_title");
    74                 }
    75                 System.out.println(itemTitle);
    76                 // System.out.println("item_title : " + solrDocument.get("item_title"));
    77                 System.out.println("item_price : " + solrDocument.get("item_price"));
    78                 System.out.println("item_image : " + solrDocument.get("item_image"));
    79                 System.out.println("item_category_name : " + solrDocument.get("item_category_name"));
    80                 System.out.println("item_desc : " + solrDocument.get("item_desc"));
    81                 System.out.println("=============================================");
    82             }
    83 
    84         } catch (SolrServerException e) {
    85             e.printStackTrace();
    86         }
    87 
    88     }
    89 
    90 }

    效果如下所示:


    2019-09-08 15:52:30 

    1、记录了Solr单机版第二种部署方案:

    将solr的安装包传到机器上以后,进行解压缩操作。

    [root@localhost package]# tar -zxvf solr-4.10.3.tgz.tar -C /home/hadoop/soft/

     1 [root@localhost soft]# ls
     2 apache-tomcat-7.0.47  dubbo-admin-2.5.4.war  jdk1.7.0_55  redis-3.0.0  solr-4.10.3  zookeeper-3.4.6
     3 [root@localhost soft]# cd solr-4.10.3/
     4 [root@localhost solr-4.10.3]# ls
     5 bin          contrib  docs     licenses     LUCENE_CHANGES.txt  README.txt
     6 CHANGES.txt  dist     example  LICENSE.txt  NOTICE.txt          SYSTEM_REQUIREMENTS.txt
     7 [root@localhost solr-4.10.3]# ll
     8 total 996
     9 drwxr-xr-x.  2 root root   4096 Sep  8 00:35 bin
    10 -rw-r--r--.  1 root root 406208 Dec  9  2014 CHANGES.txt
    11 drwxr-xr-x. 13 root root   4096 Dec  9  2014 contrib
    12 drwxr-xr-x.  4 root root   4096 Sep  8 00:35 dist
    13 drwxr-xr-x. 17 root root   4096 Sep  8 00:35 docs
    14 drwxr-xr-x. 15 root root   4096 Sep  8 00:35 example
    15 drwxr-xr-x.  2 root root  28672 Sep  8 00:35 licenses
    16 -rw-r--r--.  1 root root  12646 Dec  1  2014 LICENSE.txt
    17 -rw-r--r--.  1 root root 501873 Dec  8  2014 LUCENE_CHANGES.txt
    18 -rw-r--r--.  1 root root  24655 Dec  1  2014 NOTICE.txt
    19 -rw-r--r--.  1 root root   5344 Dec  1  2014 README.txt
    20 -rw-r--r--.  1 root root    850 Dec  1  2014 SYSTEM_REQUIREMENTS.txt

    解压缩以后的目录介绍如下所示:

     1 bin:solr的运行脚本
     2 contrib:solr的一些贡献软件/插件,用于增强solr的功能。
     3 dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。docs:solr的API文档
     4 example:solr工程的例子目录:
     5     example/solr:
     6 该目录是一个包含了默认配置信息的Solr的Core目录。
     7     example/multicore:
     8 该目录包含了在Solr的multicore中设置的多个Core目录。
     9     example/webapps:
    10 该目录中包括一个solr.war,该war可作为solr的运行实例工程。
    11 licenses:solr相关的一些许可信息

    solr需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本教程使用Tocmat作为Servlet容器,环境如下:
    Solr:Solr4.10.3
    Jdk:jdk1.7.0_72
    Tomcat:apache-tomcat-7.0.53。

    2、然后进入到solr的目录里面。将solr-4.10.3/example/webapps/solr.war文件到tomcat的webapps中。

    1 [root@localhost soft]# cd solr-4.10.3/example/webapps/
    2 [root@localhost webapps]# ls
    3 solr.war
    4 [root@localhost webapps]#
     1 将solr-4.10.3/example/webapps/solr.war文件到tomcat的webapps中。
     2 # 创建一个sole目录
     3 [root@localhost ~]# cd /usr/local/
     4 [root@localhost local]# ls
     5 bin  etc  games  include  lib  libexec  redis  redis-cluster  sbin  share  src
     6 [root@localhost local]# mkdir solr
     7 # 解压缩tomcat包,将tomcat移动到创建的solr目录里面
     8 [root@localhost package]# tar -zxvf apache-tomcat-7.0.47.tar.gz
     9 [root@localhost package]# ls
    10 apache-tomcat-7.0.47         jdk-7u55-linux-i586.tar.gz  redis-3.0.0.tar.gz   zookeeper-3.4.6.tar.gz
    11 apache-tomcat-7.0.47.tar.gz  redis-3.0.0.gem             solr-4.10.3.tgz.tar
    12 [root@localhost package]# 
    13 [root@localhost package]# mv apache-tomcat-7.0.47 /usr/local/solr/tomcat
    14 [root@localhost package]# cd /usr/local/solr/
    15 [root@localhost solr]# ls
    16 tomcat
    17 [root@localhost solr]#
    18 # 将solr.war移动到tomcat的webapps中。并检查是否移动到了tomcat的webapps中。
    19 [root@localhost soft]# ls
    20 apache-tomcat-7.0.47  dubbo-admin-2.5.4.war  jdk1.7.0_55  redis-3.0.0  solr-4.10.3  zookeeper-3.4.6
    21 [root@localhost soft]# cd solr-4.10.3/example/webapps/
    22 [root@localhost webapps]# ls
    23 solr.war
    24 [root@localhost webapps]# cp solr.war /usr/local/solr/tomcat/webapps/
    25 [root@localhost webapps]# cd /usr/local/solr/tomcat/webapps/
    26 [root@localhost webapps]# ls
    27 docs  examples  host-manager  manager  ROOT  solr.war
    28 [root@localhost webapps]# 

    然后进行解压缩solr.war包。

    1 [root@localhost webapps]# mkdir solr && unzip solr.war -d solr && rm -rf solr.war 
    2 [root@localhost webapps]# ls
    3 docs  examples  host-manager  manager  ROOT  solr

    修改Tomcat的url字符集,修改conf/server.xml文件。

    1 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URLEncoding="UTF-8"/>

    然后修改解压缩好的solr文件夹,修改其web.xml配置文件。

    1 [root@localhost webapps]# ls
    2 docs  examples  host-manager  manager  ROOT  solr
    3 [root@localhost webapps]# cd solr/
    4 [root@localhost solr]# ls
    5 admin.html  css  favicon.ico  img  js  META-INF  tpl  WEB-INF
    6 [root@localhost solr]# cd WEB-INF/
    7 [root@localhost WEB-INF]# ls
    8 lib  weblogic.xml  web.xml

    查找到env-entry内容,解开注释文本。并修改solr/home的地址。然后进行保存退出即可。

    这里的solrhome是我解压缩的solr的路径地址。这个地址可以根据自己的解压缩路径进行配置即可。

    1 <env-entry>
    2   <env-entry-name>solr/home</env-entry-name>
    3   <env-entry-value>/home/hadoop/soft/solr-4.10.3/example/solr</env-entry-value>
    4   <env-entry-type>java.lang.String</env-entry-type>
    5 </env-entry>

    拷贝相关的jar包到tomcat目录下面。

     1 [root@localhost solr]# cd /home/hadoop/soft/
     2 [root@localhost soft]# clear
     3 [root@localhost soft]# ls
     4 apache-tomcat-7.0.47  dubbo-admin-2.5.4.war  jdk1.7.0_55  redis-3.0.0  solr-4.10.3  zookeeper-3.4.6
     5 [root@localhost soft]# cd solr-4.10.3/example/lib/ext/ && cp * /usr/local/solr/tomcat/lib/
     6 [root@localhost ext]# ls /usr/local/solr/tomcat/lib/
     7 annotations-api.jar  el-api.jar                log4j-1.2.17.jar         tomcat-coyote.jar   tomcat-util.jar
     8 catalina-ant.jar     jasper-el.jar             servlet-api.jar          tomcat-dbcp.jar     websocket-api.jar
     9 catalina-ha.jar      jasper.jar                slf4j-api-1.7.6.jar      tomcat-i18n-es.jar
    10 catalina.jar         jcl-over-slf4j-1.7.6.jar  slf4j-log4j12-1.7.6.jar  tomcat-i18n-fr.jar
    11 catalina-tribes.jar  jsp-api.jar               tomcat7-websocket.jar    tomcat-i18n-ja.jar
    12 ecj-4.2.2.jar        jul-to-slf4j-1.7.6.jar    tomcat-api.jar           tomcat-jdbc.jar

     然后启动tomcat即可。可以查看启动日志。

    [root@localhost apache-tomcat-7.0.47]# tail -f -n 500 /home/hadoop/soft/apache-tomcat-7.0.47/logs/catalina.out

     1 [root@localhost local]# ls
     2 bin  etc  games  include  lib  libexec  redis  redis-cluster  sbin  share  solr  src
     3 [root@localhost local]# clear
     4 [root@localhost local]# ls
     5 bin  etc  games  include  lib  libexec  redis  redis-cluster  sbin  share  solr  src
     6 [root@localhost local]# cd solr/tomcat/
     7 [root@localhost tomcat]# ls
     8 bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
     9 [root@localhost tomcat]# bin/startup.sh 
    10 Using CATALINA_BASE:   /usr/local/solr/tomcat
    11 Using CATALINA_HOME:   /usr/local/solr/tomcat
    12 Using CATALINA_TMPDIR: /usr/local/solr/tomcat/temp
    13 Using JRE_HOME:        /home/hadoop/soft/jdk1.7.0_55
    14 Using CLASSPATH:       /usr/local/solr/tomcat/bin/bootstrap.jar:/usr/local/solr/tomcat/bin/tomcat-juli.jar
    15 [root@localhost tomcat]# tailf logs/catalina.out 
    16 Sep 08, 2019 1:24:20 AM org.apache.catalina.startup.HostConfig deployDirectory
    17 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/host-manager
    18 Sep 08, 2019 1:24:20 AM org.apache.catalina.startup.HostConfig deployDirectory
    19 INFO: Deploying web application directory /usr/local/solr/tomcat/webapps/docs
    20 Sep 08, 2019 1:24:20 AM org.apache.coyote.AbstractProtocol start
    21 INFO: Starting ProtocolHandler ["http-bio-8080"]
    22 Sep 08, 2019 1:24:20 AM org.apache.coyote.AbstractProtocol start
    23 INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    24 Sep 08, 2019 1:24:20 AM org.apache.catalina.startup.Catalina start
    25 INFO: Server startup in 5854 ms

    通过浏览器访问即可。可以看到solr提供的主页。

     

  • 相关阅读:
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    一份完整的 Java 成神路线图,值得收藏!
    12 岁开始学编程,17 岁总结了 7 个重要教训!
    想成为顶尖 Java 程序员?先过了下面这些问题!
    Dubbo面试20问!这些题你都遇到过吗?
    yum安装出现No package crontabs available解决办法
    表结构设计方法
    后端token认证模板
    vue 用户登录 路由拦截 vuex cookie
    pyharm无法安装包的问题
  • 原文地址:https://www.cnblogs.com/biehongli/p/11443347.html
Copyright © 2020-2023  润新知