搭建solr8

这里记录linux上的安装过程

一、下载安装包

https://lucene.apache.org/solr/downloads.html

 

二、解压安装

这里我放倒了/usr/local/solr目录下

解压命令: tar -zxvf solr-xxx.tgz 

 

 

 这个时候其实solr就已经可以启动了。执行一下命令。

/usr/local/solr/solr-8.1.1/bin solr start

但是如果是用root用户启动给出一个提示,并终止运行,需要加上一个修饰 

/usr/local/solr/solr-8.1.1/bin solr start -force

 

 

 这样就可以访问了。

http://ip+:8983/solr

 

 

 接下来配置实例(solrcore)

cd /usr/local/solr/solr-8.1.1/server/solr

 

 

这里需要创一个实例的文件夹,我创建的是book。

创建好了需要干一件惊天动地的大事儿了copy,洋气吧~~~~

现在进到configsets文件夹下  cd /usr/local/solr/solr-8.1.1/server/solr/configsets  要复制的部分就是_default下的conf目录

cp -r /usr/local/solr/solr-8.1.1/server/solr/configsets/_default/conf/ /usr/local/solr/solr-8.1.1/server/solr/sysuser

 

然后需要把安装目下的dist目录中的solr-dataimporthandler-extras-xxx.jar、solr-dataimporthandler-8.1.1.jar复制到 /usr/local/solr/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib 路径下

此外因为要连接到数据还要一个mysql的驱动包mysql-connector-java-8.0.18.jar。顺便把中文分词器也扔进去 ik-analyzer-8.3.0.jar。这要差不多需要的依赖就配好了,接下来就是配置文件了。

 

现在回到刚刚创建的实例的conf目录下 cd /usr/local/solr/solr-8.1.1/server/solr/sysuser/conf

在solrconfig.xml中添加一下节点,注意一定与其他的类似节点同级 可以直接搜索/select,在该节点之上添加

vi solrconfig.xml

   <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的配置文件,他是数据库的配置文件,默认是没有需要自己创建

touch data-config.xml

 

 

 编辑该文件  vi data-config.xml

添加以下内容

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
    <dataSource type="JdbcDataSource"   
            driver="com.mysql.jdbc.Driver"   
              url="jdbc:mysql://127.0.0.1:3306/xuan?useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull"   
              user="root"   
              password="lhfadmin"/>   
    <document>   
        <entity name="book" pk="id" transformer="DateFormatTransformer"  query="SELECT id,name,jianjie FROM book">

<field name="userid" type="text_ik" indexed="true" stored="true"/>
<field name="username" type="text_ik" indexed="true" stored="true"/>
<field name="realName" type="text_ik" indexed="true" stored="true"/>
<field name="phone" type="text_ik" indexed="true" stored="true"/>

        </entity>   
    </document>   
</dataConfig>

配置中文分词器,jar已经上边导入了,直接配置配置文件就好了

vi managed-schema

在最后便添加:

  <fieldType name="text_ik" class="solr.TextField">
      <analyzer type="index">
        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    <!-- 这是IK配置域,在这里不重要-->
    <field name="title_ik" type="text_ik" indexed="true" stored="true"/>
    <field name="content_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>
     
    <!--这是配置从数据库拿出来的数据配置域 -->

    <field name="userid" type="text_ik" indexed="true" stored="true"/>
    <field name="username" type="text_ik" indexed="true" stored="true"/>
    <field name="realName" type="text_ik" indexed="true" stored="true"/>
    <field name="phone" type="text_ik" indexed="true" stored="true"/>

 

 

 

 这样就ok了,重启solr

/usr/local/solr/solr-8.1.1/bin/solr restart -force

 

 如果这个位置没有刚才的实例,手动添加进去即可

点击上边的add core,

 

 框红框的地方名字是一样的,和文件夹名字相同。剩下的没有改变就默认就好了。schema.xml和managed-schema可以理解成是一个玩意,不用理会。

添加后实例后就需要导入数据库的数据了

 

 

这个时候会发现并没有导入进去,看下日志发现

 

 然后在conf目录下添加 dataimport.properties文件即可

 

 然后重启

 

 重新导入

 

 这时查询可以看到导入的数据

posted @ 2020-01-15 16:03  葬月!  阅读(257)  评论(0编辑  收藏  举报