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 写的非常详细

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 读取金税盘数据库_一种基于金税盘控制系统登录和数据同步的方法与流程

    读取金税盘数据库_一种基于金税盘控制系统登录和数据同步的方法与流程本发明涉及税务开票领域,更具体地,涉及一种基于金税盘控制系统登录和数据同步的方法。背景技术:在以往的增值税销方开票操作中,销方用户在执行开票操作时,往往会出现当前用户信息与所使用的金税盘信息不匹配的情况,从而导致开票失败,需要调整用户数据或者更换金税盘。另外,系统中缺少对用户使用的金税盘数据的收集,无法有效的管理记录金税盘的使用情况,而且销方用户对应的库存信息和发票信息也存在数据不全的情况。技术实…

    2022年4月30日
    75
  • 鲜为人知的QQ自动强制加好友代码

    是的,你也许见过强行聊天的代码: tencent://Message/?Uin=574201314&amp;websiteName=www.oicqzone.com&amp;Menu=yes 但是你应该不知道,还有强行加好友的代码:tencent://AddContact/?fromId=45&amp;fromSubId=1&amp;subcmd=all&amp;uin…

    2022年4月9日
    2.3K
  • linux 恢复 raid5数据,Raid5数据恢复案例(raid阵列数据恢复方法)「建议收藏」

    linux 恢复 raid5数据,Raid5数据恢复案例(raid阵列数据恢复方法)「建议收藏」原标题:Raid5数据恢复案例(raid阵列数据恢复方法)Raid5数据恢复算法原理要理解raid5数据恢复原理首先要先认识raid5,“分布式奇偶校验的独立磁盘结构”也就是我们称之为的raid5数据恢复有一个概念需要理解,也就是“奇偶校验”。我们可以把它简单的理解成为二进制运算中的“异或运算”,通常使用的标识是xor。这个用运算的规则就是若二者值相同则结果为0,若二者结果不同则结果为1。例如…

    2022年5月25日
    34
  • pytest重试_文件夹重定失败

    pytest重试_文件夹重定失败安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月28日
    12
  • Mac下安装android SDK

    Mac下安装android SDK本想学习一下AppiumAndroid自动化测试,结果差点死在了前期的环境安装上,终于理解了自学有多么不易,从入门到放弃就是这么容易,哈哈

    2022年7月21日
    17
  • JAVA-常用API之StringBuilder

    JAVA-常用API之StringBuilderJAVA-常用API之StringBuilder

    2022年7月17日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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