zoukankan      html  css  js  c++  java
  • solr安装记录

    [root@localhost bin]# ./solr start -force
    *** [WARN] *** Your open file limit is currently 1024.  
     It should be set to 65000 to avoid operational disruption.
     If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
    *** [WARN] ***  Your Max Processes Limit is currently 29967.
     It should be set to 65000 to avoid operational disruption.
     If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
    Waiting up to 180 seconds to see Solr running on port 8983 [|]  
    Started Solr server on port 8983 (pid=22343). Happy searching!

    [root@localhost bin]# cd ..

    一、准备环境

    1、一台linux服务器(Centos7)
    2、安装jdk8环境

    3、准备solr7.8安装包

    二、安装(我这里使用的是solr自带的应用容器,也可以集成到tomcat)

    1)从官网下载最新solr

    wget http://mirrors.shuosc.org/apache/lucene/solr/7.4.0/solr-7.4.0.tgz

    2)解压,安装

    tar -zxvf solr-7.2.0.tgz

    3)相关命令

        bin/solr stop -all         关闭solr服务
        bin/solr start -force         开启solr服务
        bin/solr status            查看solr服务状态

    三、使用solr

    1、点击Core Admin

    这里写图片描述

    2、按照步骤去创建,然后点击确认会出现

    这里写图片描述

    3、这个错误是因为找不到对应的配置文件,进入server/solr/configsets/_default/直接把里面的conf 复制到 你新建的core中 你新建的core在server/solr目录下

    命令如下:
    1、进入到server/solr/configsets/_default下

    cd /usr/local/install/solr7.4.0/server/solr/configsets/_default/

    2、然后复制到新建的test中

    cp -r conf /usr/local/install/solr7.4.0/server/solr/test/

    3、到这儿core已创建好,相应的操作可以去网上寻找,我在这就不详细说明

    三、连接mysql数据库

    1)首先处理jar

    mysql-connector-java-x.x.x.jar    solr-dataimporthandler-extras-5.1.0.jar    solr-dataimporthandler-7.1.0.jar

    拷贝到 solrserversolr-webappwebappWEB-INFlib 下

    1)配置连接信息

    找到你新建的 core 下的solrconfig.xml文件(solrconfig.xml 文件所在目录是: solrserversolr estconf),打开找到第一个requestHandler,在他下面加入如下内容

        <requestHandler name="/dataimport"
             class="org.apache.solr.handler.dataimport.DataImportHandler">
               <lst name="defaults">
                  <str name="config">data-config.xml</str>
               </lst>
        </requestHandler>

    再在你创建的core目录的conf下创建data-config.xml文件,内容如下

        <?xml version="1.0" encoding="UTF-8"?>
        <dataConfig>
            <dataSource type="JdbcDataSource"
                        driver="com.mysql.jdbc.Driver"
                        url="jdbc:mysql://192.168.1.105:3306/solr"
                        user="root"
                        password="root" />
            <document>
                <entity name="person" query="select * from user">
                    <field column="ID" name="id" />
                    <field column="name" name="name" />
                    <field column="passward" name="passward" />
                </entity>
            </document>
        </dataConfig>

            dataSource不多说,一看就明白,

            entity --代表数据库表,column--代表数据库表字段,name--代表solr中字段名

            (注意:创建这个文件的时候第一行不能有空格或者空行,否则报错)

    在managed-schema文件中添加对应于数据库字段的field,建议在 solr 可视化界面操作。当然,一定要手动修改 managed-schema 文件也不是不可以,但是每次更改完需要重新加载 Core,或者粗暴一点直接重新启动solr也可以。那么,直接修改 managed-schema 文件的。到这里你应该能联系上数据库了,也可以导入数据了。
    ---------------------  
    作者:csdn_hzl  
    来源:CSDN  
    原文:https://blog.csdn.net/csdn_huzeliang/article/details/80876200  
    版权声明:本文为博主原创文章,转载请附上博文链接!


    solr 7配置中文分词器


        这里示例配置solr官方提供的Smartcn的中文分词、IK的中文分词及拼音分词

    1、配置smartcn中文分词器

        solr安装包有提供Smartcn中文分词架包,在SOLR_ROOT/contrib/analysis-extras/lucene-libs/下,我这里使用solr 7.2.1,所以架包名称为lucene-analyzers-smartcn-7.2.1.jar

        把smartcn中文分词器架包复制到solr项目的WEB-INF/lib目录下

    cp /usr/local/solr-7.2.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.2.1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

        1

        配置 fieldType

        找到solrhome/${collection}/conf/managed-schema
        添加smartch中文分词器配置

     <schema>
        <!-- 配置中文分词器 -->
        <fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
            <analyzer type="query">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
        </fieldType>
    </schema>

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11

        重启tomcat

            新添加架包一定要重启tomcat

        查看效果
        smart中文分词效果

    2、配置IK Analyzer中文分词器

    先下载 IK Analyzer中文分词器架包及相关配置文件。
    听说I分词器不支持**solr 6、7搭建成的**solrcloud,待验证。
    这里写图片描述
    里面包括IK Analyzer 2个架包:ik-analyzer-solr5-5.x.jar、solr-analyzer-ik-5.1.0.jar

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

    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>

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11

    准备IK中文分词器环境

        把IK中文分词器架包复制到solr项目的WEB-INF/lib目录下
        把IK分词器相关配置文件复制到solr项目WEB-INF/classes/ 目录下
        这里写图片描述

    配置 fieldType

    找到solrhome/${collection}/conf/managed-schema
    在solr scheam文件中里添加 IK fieldType。

    <schema>
      <!-- IK分词 -->
      <fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index">
          <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
        </analyzer>
        <analyzer type="query">
          <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
        </analyzer>
      </fieldType>
    </schema>

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11

        说明:当 useSmart=”false”,分词粒度较小,分词后个数多;当 useSmart=”true”,分词粒度大,分词后个数据少。

    效果

    分词的效果比官方提供的smartcn中文分词要好,去掉了标点符号,去掉了 的 等词义不重要的字。
    这里写图片描述
    3、拼音分词器

    先下载 IK拼音分词器架包:pinyin4j-2.5.0.jar、pinyinAnalyzer4.3.1.jar
    把相关架包复制到solr项目的WEB-INF/lib目录下
    配置fieldType

    找到solrhome/${collection}/conf/managed-schema
    在solr scheam文件中里添加 IK fieldType

    <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>
    </schema>

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15

    效果

    这里写图片描述
    ---------------------  
    作者:写代码的蓝胖子  
    来源:CSDN  
    原文:https://blog.csdn.net/huangliuyu00/article/details/79491513  
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Linux学习--线程概念
    菱形继承
    C++类型萃取
    Linux学习--进程创建
    Linux学习--进程概念
    比较全面的gdb调试命令
    再度理解原码、反码、补码
    详谈C++虚函数表那回事(多重继承关系)
    【sparkStreaming】将DStream保存在MySQL
    【sparkStreaming】kafka作为数据源的生产和消费
  • 原文地址:https://www.cnblogs.com/shiwanming/p/10404270.html
Copyright © 2011-2022 走看看