solr入门

首先要去下载solr 下面是各版本solr的下载地址
http://archive.apache.org/dist/lucene/solr/

下载后解压,我的6.6.1里面已经有jetty容器了所以不需要再迁移到用tomcat启动

进入文件夹找到..\solr-6.6.1\server\solr-webapp\webapp\WEB-INF下的web.xml
找到如下节点并在中修改你的solr的路径,路径为你刚才解压的位置,我这里是如下

<env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>D:\..\solr-6.6.1</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

找到如下节点并将其注释,下面是solr的一些权限的东西

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint>
-->

将solr-6.6.1\server\lib\ext的jar包复制到..\solr-6.6.1\server\solr-webapp\webapp\lib目录下

将solr-6.6.1\dist下的solr-dataimporthandler-6.6.1.jar和solr-dataimporthandler-extras-6.6.1.jar复制到..\solr-6.6.1\server\solr-webapp\webapp\lib目录下
将solr-6.6.1\server\lib下的以metrics开头的5个jar包复制到..\solr-6.6.1\server\solr-webapp\webapp\lib目录下,这三步的目标路径都是一样的。

进入..\solr-6.6.1\solr-6.6.1\bin
打开cmd输入solr start
打开浏览器输入http://127.0.0.1:8983/solr进入页面如下启动成功
这里写图片描述

创建一个core
进入..\solr-6.6.1\solr-6.6.1\bin打开cmd
输入以下命令创建一个名字为Log的core
solr.cmd create -c Log
一、全量索引
1.使用mysql做测试库
需要的jar包有:solr-dataimporthandler-6.6.1.jar solr-dataimporthandler-extras-6.6.1.jar 这两个包主要是做solr数据库导入,还需要Mysql连接jdbc jar包
mysql-connector-java-5.1.18-bin.jar 将这三个包放到webapp的WEB-INF\lib目录下。
进入..\solr-6.6.1\solr-6.6.1\server\solr
找到刚创建的core的名字的文件夹进入里面的conf目录
找到solrconfig.xml加入以下节点

    <!--引入DataImportHandler类的jar-->
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.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的文件
写入

<?xml version="1.0" encoding="UTF8"?>
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password="root" batchSize="-1" />
<document>
        <entity name="sys_log" query="select id ,oper,ip,cdate,op_name,op_dsc from sys_log" pk="id">
        <!--column的id是数据库的id,name的id是managed_schema里面的id,id是必须,并且唯一的-->
            <field column="id" name="id" />
            <field column="oper" name="oper" />
            <field column="ip" name="ip" />
            <field column="cdate" name="cdate" />
            <field column="op_name" name="op_name" />
            <field column="op_dsc" name="op_dsc" />
        </entity>
    </document>
</dataConfig>

打开managed-schema写入

      <field name="op_dsc" type="string" indexed="true" stored="true"/>
      <field name="op_name" type="string" indexed="true" stored="true"/>
      <field name="oper" type="string" indexed="true" stored="true"/>
      <field name="cdate" type="date" indexed="true" stored="true"/>
      <field name="ip" type="string" indexed="true" stored="true"/>

保存后进入solr主页

这里写图片描述

这里写图片描述

出现如右框的数据说明导入成功

关于solr的定时任务

加入dataimportscheduler-1.2jar包
进入..\solr-6.6.1\solr-6.6.1\server\solr
创建一个conf目录
进入conf目录创建dataimport.properties

#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################

#  to sync or not to sync
#  1 - active; anything else - inactive
syncEnabled=1

#  which cores to schedule
#  in a multi-core environment you can decide which cores you want syncronized
#  leave empty or comment it out if using single-core deployment
#syncCores=game,resource
syncCores=Log
#  solr server name or IP address
#  [defaults to localhost if empty]
server=127.0.0.1

#  solr server port
#  [defaults to 80 if empty]
port=8983

#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
webapp=solr

#  URL params [mandatory]
#  remainder of URL
params=/dataimport?command=delta-import&clean=false&commit=true

#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
interval=1

#  重做索引的时间间隔,单位分钟,默认7200,即1天; 
#  为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=1

#  重做索引的参数
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true

#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
#  两种格式:2012-04-11 03:10:00 或者  03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=03:10:00

保存
修改web.xml加入

<listener>
    <listener-class>
        org.apache.solr.handler.dataimport.scheduler.ApplicationListener
    </listener-class>
</listener>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值