Solr搜索引擎学习笔记01--Solr安装

一、安装

首先下载solr,下载地址,选择安装目录,我本地安装位置:

/home/ypcfly/ypcfly/software/solr/solr-7.5.0
// 常用命令

 1. ./solr start    
 2. ./solr restart 
 3. ./sorl stop
 4. 如果是root用户启动 :./solr start -force

解压以后直接进入到安装路径下的bin目录,执行启动命令启动solr服务,启动成功后,打开浏览器访问:
localhost:8983/solr
在这里插入图片描述表示服务器已经成功启动了,接下来我们需要创建一个core,一个solr服务是可以有多个core的,创建core可以直接通过命令创建

./solr create –c "core name"

也可以通过后台管理页面手动创建。先进入到 /home/ypcfly/ypcfly/software/solr/solr-7.5.0/server/solr目录下,创建一个文件夹"custom_core",并复制同目录下的configsets文件夹下的"conf"文件夹到"custom_core",然后进入solr的后台管理页面,如下图:
configure中有一些两个文件夹:

_default  sample_techproducts_configs

其中_default为比较精简的配置文件,可以复制这个文件夹里的“config文件夹”
在这里插入图片描述如果创建过程中出错,按照错误信息提示修改就可以了,这个过程还是很简单的。最后在"core selector"下可以选择自己的core,并进行其他的操作,到这里solr的安装以及core的创建就完成了。

二、数据导入

core创建好了之后,solr还没有数据,所以需要从数据库批量添加数据到solr服务器。数据导入可以通过solr后台管理页面导入,也可以通过代码操作solr客户端导入,这里就简单的通过后台管理页面导入数据。先选择需要导入数据的core,然后选择Dataimport,如下图:
在这里插入图片描述但是,在导入之前我们还有两个很重要的事情需要处理:一是配置导入数据需要的处理器;二是配置数据源。

1、配置导入数据处理器

打开 /home/ypcfly/ypcfly/software/solr/solr-7.5.0/server/solr/cutom_core/conf/solrconfig.xml文件,添加导入数据处理器,这个和其他的处理器放在一起就可以了。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    //配置文件的路径应该也可以使用绝对路径
    <str name="config">dataConfig.xml</str>
  </lst>
</requestHandler>

2、配置数据源

然后在conf文件夹下新建一个dataConfig.xml文件(名字自己随意取,只需要和上面solrconfig配置中的名称一致即可),并配置数据源和相关的document,也就是需要导入的数据。solr的数据源是支持多个数据库的,比方我可以使用mysql的user表,同时使用postgresql的order表,只是相对复杂一点,多库的情况个人感觉应该很少见。具体可以见solr官方文档,我依然使用的是postgresql数据库,其他数据库一样的格式。这里我document配置了最简单的单表查询。entity就是我们的"实体",column就是表的列名,name是对应的solr的Field。

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
  <dataSource
        driver="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/springboot"
        user="postgres" password="123456"/>
  <document>
      <entity name="user" query="select * from t_user">
        <field column="id" name="id"/>
        <field column="username" name="userName"/>
        <field column="age" name="userAge"/>
        <field column="sex" name="sex"/>
        <field column="address" name="address"/>
        <field column="mobile" name="mobile"/>
        <field column="description" name="description"/>
      </entity>
  </document>
</dataConfig>

数据源的配置文件配置好以后,需要将数据库查询的column的名字和solr中Field的名字对应起来,所以还需要在schema配置文件添加相关的Field,打开conf下面的managed-schema文件,添加相应的Field。

<!-- 自定义添加filed -->
    <field name="userName" type="string" indexed="true" stored="true"/>
    <field name="userAge" type="pint" indexed="true" stored="true"/>
    <field name="sex" type="string" indexed="true" stored="true"/>
    <field name="mobile" type="string" indexed="true" stored="true"/>
    <field name="address" type="string" indexed="true" stored="true"/>
    <field name="description" type="string" indexed="true" stored="true"/>

自定义Field的类型必须是solr已有的类型,indexed表示改字段是否支持索引,stored表示是否会存储。至于为什么我没添加id,那是因为solr已经有了id字段,所以不需要用户再去定义了。
最后一个是导入相关的jar包,因为数据导入我们使用到了数据库,所以必须要有数据库驱动的jar,另一个就是solr自带的data-import的jar。数据库驱动根据自己数据库选择,而solr自带的两个相关jar包,可以在solr解压目录"dist"目录下找到,而我本地路径:

/home/ypcfly/ypcfly/software/solr/solr-7.5.0/dist

一个是solr-dataimporthandler-7.5.0.jar,另一个是solr-dataimporthandler-extras-7.5.0.jar。将这三个jar包复制到"…/server/solr-webapp/webapp/WEB-INF/lib"文件夹下。
然后重新启动solr服务器。

3、数据导入

启动好solr服务器后,打开solr后台管理页面,选择"Dataimport",勾选上"图-3"中的"Clean"和"Commit",然后点击"Excute"执行成功后,在点击旁边的"Refresh status",如果报错的话根据报错信息进行排除即可。然后我们查询一下数据是不是真的导入成功,选择查询所有数据,看结果是否一致就可以了
在这里插入图片描述结果总共有4条记录和我数据的数据完全一致,说明数据导入成功了。

三、安装IK分词器

其实solr也好elasticsearch一般都会配置单独的中文分词器,根据需要可能会选IK或者pingyin,也可能都安装,下面简单记录下安装IK中文分词的过程。solr也是有自带分词器的,但是对中文支持并不好,所以都会需要安装专门的中文分词器。

1、配置IK

先根据自己solr版本下载相应的IK分词器包,下载地址。感觉solr版本的IK下载地址不太好找,不像Elasticsearch非常容易找到每个版本对应的IK。下载的时候选择jar格式,下载之后将jar包复制到"…/server/solr-webapp/webapp/WEB-INF/lib"文件夹下,我的本地路径是:

/home/ypcfly/ypcfly/software/solr/solr-7.5.0/server/solr-webapp/webapp/WEB-INF/lib
然后在WEB-INF文件夹下新建一个"classes"文件,复制IK分词器需要的相关配置文件(我是从jar包解压获取的)到classes目录下,其实主要就一个,那就是"IKAnalyzer.cfg.xml",也就是IK的配置文件,内容也不多,如果找不到直接复制就行

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">custom.dic;</entry> 
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 
    
</properties>

2、配置schema

这里我们需要打开"core"/conf目录下的"managed-schema"文件,然后添加上IK的分词器的配置内容:

<fieldType name="ik_word" 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分词器的整个配置就完成了,接下来使用IK分词器测试一下。

3、测试

配置IK完成后启动solr服务器,选择自定义的core,选择"Analysis",随意输入一段中文,然后选择到"ik_word"(和上面managed-schema配置中自己定义名称一致),点击右侧"Analyse Values",结果如下:
在这里插入图片描述

本文转载于:(谢谢作者提供)

作者:超超学堂
链接:https://www.jianshu.com/p/4b5b10e75245
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值