zoukankan      html  css  js  c++  java
  • 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系统

    第二步:在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

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

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

    # mv webapp solr7

    第六步:拷贝solr-7.3.1serverlibext 下的jar包到 tomcatwebappssolr7 项目的WEB-INFlib下

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

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

    [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-INFlib下

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

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

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

    第九步:关联solr和solrhome.需要修改tomcatwebapps solr7WEB-INFweb.xml

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

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

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

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

    4.修改log4j.properties文件

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

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

     

    4 HTTP Status 403 – Forbidden解决

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

    然后重启tomcat.

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

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

    5 不能添加核心的解决

    1 事故现场

    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下面有一个感叹号!

     

    如果你不管他,直接点击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 ./

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

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

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

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

    第四步:修改核心配置文件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文件

     

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

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

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

    3 补充

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

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

    6 ikanalyzer 中文分词器

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

    里面包括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"/>

    配置完成后的效果如下:

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

    第五步:测试

     

    7  拼音分词器的安装

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

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

    第一步:将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,查看效果

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

    配置前的效果

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

    jar包的位置:

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

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

    一二两步后的效果:

     第三步:修改/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文件中加入上面的代码,效果如下

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

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

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

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

     

  • 相关阅读:
    ASP.NET MVC案例——————拦截器
    Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限
    Windows Azure Storage (20) 使用Azure File实现共享文件夹
    Windows Azure HandBook (5) Azure混合云解决方案
    Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On
    Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
    Windows Azure Service Bus (5) 主题(Topic) 使用VS2013开发Service Bus Topic
    Azure China (9) 在Azure China配置CDN服务
    Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob
    Windows Azure HandBook (4) 分析Windows Azure如何处理Session
  • 原文地址:https://www.cnblogs.com/jepson6669/p/9134652.html
Copyright © 2011-2022 走看看