solr7.1部署到windows上的tomcat

我使用的tomcat版本是8.5.23,solr版本是solr7.1,solr下载地址是http://archive.apache.org/dist/lucene/solr/7.1.0/,选择solr-7.1.0.zip,解压,我解压到H盘根目录。
1、在tomcat的webapps下新建一个文件夹叫solr,复制H:\solr-7.1.0\server\solr-webapp\webapp目录下的所有文件到这个文件夹中。
2、在H盘根目录创建一个文件夹solr_home,这个文件夹用于放solr的索引配置文件和数据的。打开H:\apache-tomcat-8.5.23\webapps\solr\WEB-INF下的web.xml文件,指定solr_home的位置。

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

同时注释下面一段,不然启动tomcat会报403错误。

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

3、在H:\apache-tomcat-8.5.23\webapps\solr\WEB-INF下创建一个文件夹classes,将H:\solr-7.1.0\server\resources下的log4j.properties文件复制进去,否则日志不能正常显示。
4、将H:\solr-7.1.0\server\lib下的jar文件以及etc中的jar文件一起复制到H:\apache-tomcat-8.5.23\webapps\solr\WEB-INF\lib文件夹下。
5、将H:\solr-7.1.0\server\solr下的solr.xml文件复制到solr_home根目录下。
6、此时就可以启动tomcat,打开solr 的管理页面了,地址是http://{ip}:{port}/solr/index.html#/
7、现在在管理页面添加core:首先将H:\solr-7.1.0下的contrib和dist文件夹复制到solr_home根目录下,在管理页面点击add core,会报错提示Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'H:\solr_home\new_core'
这里写图片描述
此时solr_home下会生成new_core文件夹,将H:\solr-7.1.0\server\solr\configsets\_default下的conf文件夹复制到new_core中,然后重启solr服务,再点击add core,即可成功创建core。
这里写图片描述
如果这时候你想修改new_core的名字,只需打开H:\solr_home\new_core下的core.properties,修改其中的name即可。
8、有时项目中需要把数据库的数据导入到solr中,就需要用到solr的dataimport功能。直接点击dataimport会提示Sorry, no dataimport-handler defined!,就需要先完成如下操作。
9、将H:\solr-7.1.0\dist文件夹中的solr-dataimporthandler-7.1.0.jar和mysql-connector-java-5.1.32.jar放入H:\solr_home\contrib\dataimporthandler下的lib文件夹中,如果没有lib文件夹就新建一个,同时也放在H:\apache-tomcat-8.5.23\webapps\solr\WEB-IN0F\lib下。
10、打开H:\solr_home\new_core\conf下的solrconfig.xml文件,追加

<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">db-data-config.xml</str>
    </lst>
</requestHandler>

然后在H:\solr_home\new_core\conf下新建db-data-config.xml文件,内容如下其中document中的为导入数据的sql:

<dataSource 
        name="oracle"
        type="JdbcDataSource"
        driver="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@//192.168.30.172:1521/orcl"
        user="IFLYTEK"
        password="IFLYTEK"/>   

<document>   
    <entity name="gbal" dataSource="oracle" transformer="ClobTransformer" query="SELECT
                GBAL.ID as ZID,
                GBAL.MC as ZMC,
                GBAL.AY_ID as ZAYID,
                GBAL.SLRQ as ZFBRQ,
                GBAL.QS as ZQS,
                GBAL.ZSFY as ZGDFYMC,
                GBAL.AH as ZAH,
                GBAL.QW as ZNR
            FROM GBAL">
            <field column="ZID" name="zhal_id" />
            <field column="ZMC" name="mc" />
            <field column="ZAYID" name="zhal_ay_id" />
            <field column="ZFBRQ" name="zhal_fbrq" />
            <field column="ZQS" name="zhal_qs" />
            <field column="ZGDFYMC" name="zhal_gdfy_mc" />
            <field column="ZAH" name="zhal_ah" />
            <field column="ZNR" name="nr" clob="true" />
    </entity>   
</document>   

</dataConfig>

我用的是oracle数据库,还需要在H:\apache-tomcat-8.5.23\webapps\solr\WEB-INF\lib下加入ojdbc6-11.2.0.jar。此时重启solr,即可打开dataimport功能。注意要先在schema.xml(也就是managed-schema文件)下添加需要的索引字段。
我用的是hanlp分词器,先将hanlp-portable.jar和hanlp-solr-plugin.jar两个jar放入H:\apache-tomcat-8.5.23\webapps\solr\WEB-INF\lib下,然后在schema.xml中添加如下代码,即可为索引指定text-cn类型:

<fieldType name="text_cn" class="solr.TextField">
      <analyzer type="index">
        <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>
      </analyzer>
      <analyzer type="query">
        <!-- 切记不要在query中开启index模式 -->
        <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="false"/>
      </analyzer>
</fieldType>

使用hanlp分词器,在高亮显示时会出现错位现象,没找到解决方案,现在换回ik了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值