0.5solr7.3.1在CentOS7上的安装

0.5solr7.3.1在CentOS7上的安装

solr7.3.1在CentOS7上的安装

1 solr的下载

从Solr官方网站(http://archive.apache.org/dist/lucene/solr/7.3.1/ )下载Solr最新版本

根据Solr的运行环境,Linux下需要下载solr-7.3.1.tgz,windows下需要下载solr-7.3.1.zip

2 solr的环境

Solr是java开发的,在windows上面和Linux上面的安装一样。

windows上面的安装教程可以参照:http://www.cnblogs.com/jepson6669/p/9053880.html

1.需要安装jdk【需要jdk1.8及以上版本】

2.安装环境CentOS7

3.需要安装tomcat(非必需,可以使用内置的小服务器jetty)

我的环境:

SolrSolr7.3.1

Jdk1.8.0_162

Tomcatapache-tomcat-8.5.31

3 安装过程

第一步:把solr的压缩包上传到Linux系统

0.5solr7.3.1在CentOS7上的安装

第二步:在usr/local/创建solr目录

# mkdir /usr/local/solr

第三步:解压solr到刚刚创建的solr目录下

[root@i soft]# tar -xvf solr-7.3.1.tgz -C /usr/local/solr

第四步:解压解压tomcat到solr目录下

[root@i soft]# tar -xvf apache-tomcat-8.5.31.tar.gz -C /usr/local/solr

0.5solr7.3.1在CentOS7上的安装

第五步:把 solr\solr-7.3.1\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr7,也可以是其他名字

[root@iz solr-webapp]# cp -r webapp /usr/local/solr/apache-tomcat-8.5.31/webapps/

0.5solr7.3.1在CentOS7上的安装

# mv webapp solr7

0.5solr7.3.1在CentOS7上的安装

 

第六步:拷贝solr-7.3.1\server\lib\ext 下的jar包到 tomcat\webapps\solr7 项目的WEB-INF\lib下

[root@i ext]# cp * /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/

第七步:拷贝solr-7.3.1\server\lib\目录下gmetric4j-1.0.7.jar,以及以metrics开头的jar包拷贝到WEB-INF\lib下

[root@i lib]# cp gmetric4j-1.0.7.jar /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/

[root@iz lib]# cp metrics-*.* /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/

另外还需要拷贝/usr/local/solr/solr/dist下面的以solr-dataimporthandler开头的jar包WEB-INF\lib下

 

[root@ dist]# cp /usr/local/solr/solr/dist/solr-dataimporthandler-*.* /usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib/

 

第八步:拷贝solr-7.3.1\server 下的solr文件夹到/usr/local/solr目录下,重命名为solrhome。

[root@i server]# cp -r solr /usr/local/solr/

[root@iz solr]# mv solr solrhome

0.5solr7.3.1在CentOS7上的安装

 

第九步:关联solr和solrhome.需要修改tomcat\webapps\ solr7\WEB-INF\web.xml

0.5solr7.3.1在CentOS7上的安装

第十步:解决日志不能够正常显示问题

1.在/sor7/WEB-INF/下面创建一个classes文件夹

0.5solr7.3.1在CentOS7上的安装

 

2.拷贝solr7.3.1\server\resources下的log4j.properties到刚刚创建的classes目录下。

0.5solr7.3.1在CentOS7上的安装

 3.在/usr/local/solr/创建一个logs文件夹

0.5solr7.3.1在CentOS7上的安装

4.修改log4j.properties文件

0.5solr7.3.1在CentOS7上的安装

 

第十一步:修改tomcat的端口,避免冲突

0.5solr7.3.1在CentOS7上的安装

0.5solr7.3.1在CentOS7上的安装

0.5solr7.3.1在CentOS7上的安装

第十二步:启动tomcat,访问solr时后面记得加上“index.hmtl”

 0.5solr7.3.1在CentOS7上的安装

4 HTTP Status 403 – Forbidden解决

修改/usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/web.xml文件。

0.5solr7.3.1在CentOS7上的安装

然后重启tomcat.

然后访问终于看到了欢迎页面:

0.5solr7.3.1在CentOS7上的安装

这也就是说明安装成功了。

5 不能添加核心的解决

1 事故现场

0.5solr7.3.1在CentOS7上的安装

name:自定义的名字,建议和instanceDir保持一致

instanceDir:solrhome目录下的示例类目

dataDir:默认填data即可

config:指定配置文件,/usr/local/solrhome/new_core/conf/solrconfig.xml

schema:指定schema.xml文件,new_core/conf/schema文件(实际上是managed-schema文件)

注意!在schema.xml下面有一个感叹号!

 0.5solr7.3.1在CentOS7上的安装

如果你不管他,直接点击Add Core会提示solrconfig.xml文件找不到

2 事故解决

第一步:进入到solrhome/new_core目录,复制/solr-7.3.1/server/solr/configsets/_default/conf文件夹到new_core目录下

[root@i new_core]# cp -r /usr/local/solr/solr-7.3.1/server/solr/configsets/_default/conf ./

0.5solr7.3.1在CentOS7上的安装

第二步:切换到solrhome目录,复制/usr/local/solr/solr-7.3.1/contrib文件夹到solrhome目录下

[root@i solrhome]# cp -r  /usr/local/solr/solr-7.3.1/contrib/ ./

0.5solr7.3.1在CentOS7上的安装

第三步: 复制solr-7.3.1/dist文件夹到solrhome目录下

[root@iz2ze7k6ycnx8b40ynghxtz solrhome]# cp -r /usr/local/solr/solr-7.3.1/dist/ ./

0.5solr7.3.1在CentOS7上的安装

第四步:修改核心配置文件solrhome/new_core/conf/solrconfig.xml,

主要是修改contrib目录,dist目录的相对位置。

复制代码
  <lib dir="${solr.install.dir:..}/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-velocity-\d.*\.jar" />
复制代码

第五步:重启服务即可正常创建Core,然后instanceDir文件夹(new_core)里会自动生成一个core.properties文件

 0.5solr7.3.1在CentOS7上的安装

new_core文件夹里面的内容如下:

0.5solr7.3.1在CentOS7上的安装

core.properties文件中的内容如下:

0.5solr7.3.1在CentOS7上的安装

到这里就解决了不能添加核心问题。

3 补充

以后再次需要创建solrCore核心的时候,就不用这么麻烦了。

可以直接复制第一创建的new_core目录,修改core.properties文件中的name即可

6 ikanalyzer 中文分词器

准备好Ikanalyzer文件,目录结构如下:

0.5solr7.3.1在CentOS7上的安装

里面包括IK Analyzer 2个架包:ik-analyzer-solr5-5.x.jar、solr-analyzer-ik-5.1.0.jar

IK配置文件 IKAnalyzer.cfg.xml、ext.dic、stopword.dic

第一步:拷贝ik-analyzer-solr5-5.x.jar到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib目录下面

第二步:拷贝ext.dic ,stopword.dic,ikAnalyzer.cfg.xml到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/classes目录下面。

前面的安装过程中我已经创建过classes目录,如果没有的话,创建一个。

ikAnalyzer.cfg.xml文件内容如下:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">ext.dic;</entry> 
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 
    
</properties>
复制代码

ext.dic里面添加新词汇:比如“王者荣耀”这类的。

stopword.dic里面添加不需要分词的词语,比如 “的 了  个 你 我 他”

第三步:修改/usr/local/solr/solrhome/new_core/conf下面的managed-schema文件。

 1.添加一个自定义的fieldType

<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

2.定义一个field,指定field的Type属性为text_ik

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

配置完成后的效果如下:
0.5solr7.3.1在CentOS7上的安装

第四步:重启tomcat,让配置生效

第五步:测试

 0.5solr7.3.1在CentOS7上的安装

7  拼音分词器的安装

首先需要准备好拼音分词器所需的jar包。

0.5solr7.3.1在CentOS7上的安装

另外还需要用到第六步的ikanalyzer 中文分词器里面的一个jar包。

0.5solr7.3.1在CentOS7上的安装

第一步:将solr-analyzer-ik-5.1.0.jar,pinyinAnalyzer4.3.1.jar,pinyin4j-2.5.0.jar三个jar包

导入到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib目录下面。

 

第二步:修改/usr/local/solr/solrhome/new_core/conf下面的managed-schema文件

 在其中加入下面的内容

复制代码
     <!-- IK 拼音分词 -->
     <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
        <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
     </fieldType>
复制代码

 

第三步:重启tomcat,查看效果

0.5solr7.3.1在CentOS7上的安装

 

8 使用dataimport插件批量导入数据

配置前的效果

0.5solr7.3.1在CentOS7上的安装

第一步:把dataimport插件的依赖的jar包添加到/usr/local/solr/solrhome/contrib/dataimporthandler/lib下,lib目录没有就创建一个

jar包的位置:

0.5solr7.3.1在CentOS7上的安装

第二步:导入数据库的驱动包到/usr/local/solr/solrhome/contrib/dataimporthandler/lib下

数据的jar包需要自己去找。

一二两步后的效果:

0.5solr7.3.1在CentOS7上的安装

 第三步:修改/usr/local/solr/solrhome/new_core/conf下面的solrconfig.xml配置文件,添加一个requestHandler

<lib dir="${solr.install.dir:..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
</requestHandler> 

第四步:创建一个data-config.xml文件保存到/usr/local/solr/solrhome/new_core/conf目录下

# vim data-config.xml

里面的内容如下:

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
          driver="com.mysql.jdbc.Driver"
          url="jdbc:mysql://39.105.94.154:3306/lucene"
          user="tom"
          password="tom"/>
<document>
    <entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
         <field column="pid" name="id"/>
         <field column="name" name="product_name"/>
         <field column="catalog_name" name="product_catalog_name"/>
         <field column="price" name="product_price"/> 
         <field column="description" name="product_description"/>
         <field column="picture" name="product_picture"/>
    </entity>
</document>
</dataConfig>
复制代码

dataSource和entity里面的内容根据自己的实际情况修改.

对于没有的域需要自己配置。

复制代码
  <!--product-->
   <field name="product_name" type="text_ik" indexed="true" stored="true"/>
   <field name="product_price"  type="float" indexed="true" stored="true"/>
   <field name="product_description" type="text_ik" indexed="true" stored="false" />
   <field name="product_picture" type="string" indexed="false" stored="true" />
   <field name="product_catalog_name" type="string" indexed="true" stored="true" />

   <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
   <copyField source="product_name" dest="product_keywords"/>
   <copyField source="product_description" dest="product_keywords"/>
复制代码

在managed-schema文件中加入上面的代码,效果如下

0.5solr7.3.1在CentOS7上的安装

第五步:重启tomcat,让配置生效

 

第六步:点击Execute按钮导入数据。

勾选Auto-Refresh Status 可以自动刷新,看到导入的状态

 

导入数据前会先清空索引库,然后再导入。

本文转载自:https://www.cnblogs.com/jepson6669/p/9134652.html 写的非常详细

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111279.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python 列表函数

    python 列表函数list函数:功能:将字符创转化为列表,例:列表基本函数:1.元素赋值,例:注意:通过list[0]='hel',如果原来位置上有值,会覆盖掉原来的。2.分片操作1)显示

  • python微信自动群发脚本_python 微信批量发送消息脚本

    python微信自动群发脚本_python 微信批量发送消息脚本通过python利用微信公众号,批量发送消息但是,因为免费的,一天一个用户,只能发90条消息。。。可以用于zabbix啊,。等监控#!/usr/bin/envpython#-*-coding:utf-8-*-importurllib2importsysimportsimplejsonasjsonreload(sys)sys.setdefaultencoding(“utf-8…

  • 使用openstack搭建私有云[通俗易懂]

    使用openstack搭建私有云[通俗易懂]OpenStack部署一、环境准备1、网络环境主机IPcontroller10.0.0.51compute110.0.0.61修改hosts文件cat/etc/hosts10.0.0.51 controller10.0.0.61 compute1关闭selinux、firewalldcatenv_set.sh#!/bin/bashsystemctlstopfirewalldsystemctldisablefirewallds

  • CentOS7安装MySQL(详解)

    CentOS7安装MySQL(详解)一、利用YumRepository来安装,Mysql版本5.7.14yum-yinstallmysql57-community-release-el7-10.noarch.rpm如果出现以下错误:这是因为我们本地yum仓库中没有可用的mysql-serverrpm包。这时可执行以下命令:wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装完成:.

  • 如何用51单片机控制步进电机运动

    如何用51单片机控制步进电机运动本来接触单片机挺久了的,但是一直只是停留在非常初级的认识阶段,本科的时候上过几门课,但是从来没有自己捣鼓过单片机,这次突然来了兴趣,感觉一下子学到了好多东西,在这里好好整理一下。这篇文章只适合于入门阶段的小白阅读,高手请绕道。12年年初的时候购买了一套普中科技的“单片机开发试验仪”,好多次想好好学学,结果每一次都半途而废,主要原因还是周围的人都不会用,有问题都不知道找谁问,结果锁到箱子里一直到现在。

  • C/S与B/S架构的产品进行系统测试的区别

    C/S与B/S架构的产品进行系统测试的区别

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号