Solr 7.2.0 部署、配置IK分词及从关系型数据建立索引

本文详细记录了如何在2018年部署Solr7.2服务器,包括Solr简介、部署步骤(解压、配置、创建Core、IK分词库设置和数据库索引导入)以及参考资料。重点介绍了IK分词器的配置和与数据库的连接过程。
摘要由CSDN通过智能技术生成

一、编写目的

于2018/04/18尝试部署Solr服务器,期间反复揣摩和尝试,最后形成一套解决思路和理解,特此将其记录下来,以方便后来进行翻阅、查看和配置。

1.1. Solr简介

       首先先了解solr是什么:

Solr是一个高性能,采用Java5开发, 

Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功 能管理界面,是一款非常优秀的全文搜索引擎

全文检索的方法主要分为按字检索和按词检索两种。

按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合一的,而中文中字与词有很大分别。

按词检索指对文章中的词,即语义单位建立索引,检索时按词检索,并且可以处理同义项等。英文等西方文字由于按照空白切分词,因此实现上与按字处理类似,添加同义处理也很容易。中文等东方文字则需要切分字词,以达到按词索引的目的,关于这方面的问题,是当前全文检索技术尤其是中文全文检索技术中的难点。

二、部署步骤

2.1. 解压 Solr7.2.0、Tomcat8压缩包

2.2. 复制/修改Solr文件

2.2.1. [Solr]/server/solr-webapp/webapp到[Tomcat]/webapps下

2.2.2. 修改该文件夹名称为[Solr]

注:solr4.10.3的版本当中都是直接复制solr.war到webapps下并进行自己手动解压或者运行tomcat解压

2.3. 复制jar

2.3.1. 复制[Solr]/lib下如下jar

2.3.2. 粘贴于[Tomcat]/webapps/solr/WEB-INF/lib下

2.4. 创建classes文件夹/复制log4j.properties文件

2.4.1. [Tomcat]/webapps/solr/WEB-INF

2.4.2. 复制[Solr]/server/resources/log4j.properties到[Tomcat]/webapps/solr/WEB-INF/classes下

2.5. 启动/创建Core

在这里 ,可以将Core理解为一个索引库 什么是Core?

2.5.1. 命令行进入[Solr]/bin,执行 ./solr start , 启动Solr

启动后默认端口为8993,传送门 http://localhost:8983/solr/index.html

2.5.2. 创建Core存在两种方式:

a. 命令行创建

.\solr create -c [name]

例如:.\solr create -c test_core

创建成功后提示如图:

技巧:WIN10特性,在[Solr]/bin文件夹下按住 shift键+右键 打开powerShell窗口

注:先启动Solr后执行,否则创建不成功,则会提示如图

b. Solr 平台创建

传送门 http://localhost:8983/solr/index.html#/~cores

以上两种方式都会在[Solr]/server/solr生成文件夹,文件名与输入的name是一样的,如图

2.6. 创建新文件夹/复制SolrCore/填写Core访问路径

2.6.1. 在[Tomcat]目录下定义一个新文件夹,用于存放Core及配置生成的索引库。

例:[Tomcat]/solr_home

2.6.2. 将此前通过创建的Core(2.5)以及同级目录文件都复制粘贴于创建的文件夹(2.6.1)中

如图:

2.6.1. 修改 [Tomcat]/webapps/solr/WEB-INF/web.xml 内容

可将注释打开/修改内容或者直接复制如下内容:

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

    此致,Solr配置完毕,启动Tomcat

注:如果发现仍然发现进入不了Solr,报403错误,尝试注释掉如下内容

2.7. 配置IK分词库

2.7.1. 解压ikanalyzer-solr6.5.zip

2.7.2. ik-analyzer-solr5-5.x.jar 复制到[tomcat]/webapss/solr/WEB-INF/lib

        IKAnalyzer.cfg.xml 复制到[tomcat]/webapss/solr/WEB-INF/classes

2.7.3. 进入[Tomcat]/solr_home/[core]/conf

        修改managed-schema文件,头部添加以下内容

<fieldType name="text_ik" class="solr.TextField">  
    <analyzer type="index">  
    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false" />  
    <filter class="solr.LowerCaseFilterFactory" />  
    </analyzer>  
    <analyzer type="query">  
        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"  
 isMaxWordLength="false" useSmart="false" />  
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"  
 ignoreCase="true" expand="true" />  
        <filter class="solr.LowerCaseFilterFactory" />  
        <charFilter class="solr.HTMLStripCharFilterFactory" />
    </analyzer>  
</fieldType> 

至此,IK分词库配置完成。可通过如下操作找到该配置分词库

2.8. 从关系型数据库建立索引

2.8.1. 导入jar

2.8.1.1. 进入[Solr]/dist/目录复制jar。

        solr-dataimporthandler-extras-7.2.0.jar

        solr-dataimporthandler-7.2.0.jar

2.8.2. 修改配置

2.8.2.1. 进入[Tomcat]/solr_home/conf目录

        solrconfig.xml添加以下内容

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

如图:

注意:如果不配置在选择DataImport时,会提示Sorry, no dataimport-handler defined!

2.8.3. 建立data-config.xml文件

链接:https://pan.baidu.com/s/1soCI-J3ZWpBgThMoW1t33g 提取码:dg3n

2.8.4. 引入数据库驱动

演示中使用的是oralce数据,则直接导入驱动到[Tomcat]/webapps/solr/WEB-INF/lib即可

2.8.5. 增加属性描述

在managed-schema中添加以下内容:

<field name="ID" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="uuid" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
<field name="modules" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="modulesName" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="text" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
<field name="url" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="updateTime" type="date" indexed="true" stored="true" required="true" multiValued="false" />

三、下载传送门

链接:https://pan.baidu.com/s/1soCI-J3ZWpBgThMoW1t33g 提取码:dg3n

四、参考资料

solr7.2环境搭建和配置ik中文分词器_ik solr7.5.0-CSDN博客 solr7.2环境搭建和配置ik中文分词器

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值