• Linux下安装使用Solr


    Linux下安装使用Solr

    1、首先下载Solr、mmseg4j分词包、tomcat并解压,这用google、百度都可以搜索得到下载地址。

    2、因为要使用到中文分词,所以要设置编码,进入tomcat安装目录,使用vi修改confserver.xml配置

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

    增加 URIEncoding="UTF-8"设置编码为utf-8。

    3、将下载的solr包下面dist文件夹中的apache-solr-*.war 拷贝到 tomcat的webapps 并且改名为 solr.war

    cp /opt/apache-solr-3.6.1/dist/apache-solr-3.6.1.war /opt/apache-tomcat-6.0.35/webapps/solr.war

    4、将下载的solr包下面example文件夹中的solr文件拷贝到/opt目录下

    cp -r /opt/apache-solr-3.6.1/example/solr/ /opt

    5、配置环境变量solr.home,使用vi修改/etc/profile,增加以下代码,配置永久变量,重启reboot

    export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/opt/solr"

    6、启动tomcat服务,然后访问http://127.0.0.1:8080/solr/

    出现如下页面,表示配置成功

    7、配置中文分词,将mmseg4j目录下的一个jar包复制到solr/WEB-INF/lib/目录下让solr使用,这里必须先运行一遍才会产生solr文件夹

    cp /opt/mmseg4j/mmseg4j-all-1.8.3.jar /opt/apache-tomcat-6.0.35/webapps/solr/WEB-INF/lib/

    8、配置中文词库

    cp /opt/mmseg4j/data/words.dic /opt/solr/dic/

    9、更改schema.xml (/opt/solr/conf/schema.xml) 文件,使分词器起到作用。

    <!--mmseg4j field types-->
    <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" > 
     <analyzer> 
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/opt/solr/dic"/> 
        <filter class="solr.LowerCaseFilterFactory"/> 
      </analyzer> 
    </fieldType> 
    
    <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" > 
    <analyzer> 
     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="/opt/solr/dic"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    </fieldType> 
    
    <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" > 
    <analyzer> 
      <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="/opt/solr/dic"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    </fieldType>

    10、http://127.0.0.1:8080/solr/admin/analysis.jsp

    点击Analyze查看分词效果

    11、配置mysql数据库

    首先要导入连接mysql的jar包mysql-connector-java-5.1.7-bin.jar

    我是放在tomcat的lib目录下

    touch /opt/solr/conf/mysql.xml

    将下面内容写入mysql.xml中

    <?xml version="1.0" encoding="UTF-8" ?>
    <dataConfig>
    
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://10.10.150.116/travel_main" user="new_travel_u" password="123045"/>
    
        <document name="user_core">
    
            <entity name="user_core" query="select * from user_core" pk="userId"
      deltaQuery ="select userId from user_core where editTime > '${dataimporter.last_index_time}'">
       <field column="userId" name="id" />
                <field column="nickname" name="nickname" />
            </entity>
    
        </document>
    
    </dataConfig>

    solrconfig.xml的<fields>必须有和数据库字段相对应的子元素,我这里新增了个nickname

    <field name="nickname" type="string" indexed="true" stored="true" />

    再配置solrconfig.xml文件,在<config>节点下新增一个节点

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

    再把<lib>标签的路径修改下,不然可能会找不到相应的jar包

    <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-cell-d.*.jar" />
    <lib dir="/opt/apache-solr-3.6.1/contrib/extraction/lib" regex=".*.jar" />
    
    <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-clustering-d.*.jar" />
    <lib dir="/opt/apache-solr-3.6.1/contrib/clustering/lib/" regex=".*.jar" />
    
    <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-dataimporthandler-d.*.jar" />
    <lib dir="/opt/apache-solr-3.6.1/contrib/dataimporthandler/lib/" regex=".*.jar" />
    
    <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-langid-d.*.jar" />
    <lib dir="/opt/apache-solr-3.6.1/contrib/langid/lib/" regex=".*.jar" />
    
    <lib dir="/opt/apache-solr-3.6.1/dist/" regex="apache-solr-velocity-d.*.jar" />
    <lib dir="/opt/apache-solr-3.6.1/contrib/velocity/lib" regex=".*.jar" />

    12、重启tomcat

    /opt/apache-tomcat-6.0.35/bin/shutdown.sh
    /opt/apache-tomcat-6.0.35/bin/startup.sh

    13、浏览器输入网址

    http://127.0.0.1:8080/solr/dataimport?command=full-import

    新增全量索引,然后进入

    http:// 127.0.0.1:8080/solr/admin/

    查询便得出结果

    可以定时调度增加增量索引

    http:// 127.0.0.1:8080/solr/dataimport?command=delta-import

  • 相关阅读:
    MySQL---exists检查数据库对象是否存在
    MySQL---自查询
    MySQL---多表查询
    等待元素
    单元测试---testsuite对象
    mysql--事务
    untieeest方法
    线性,模块,数据,关键字的作用
    selenium中隐式等待和显示等待的区别
    软件测试的原则
  • 原文地址:https://www.cnblogs.com/chinway/p/6187322.html
Copyright © 2020-2023  润新知