solr安装,配置和后台管理

Posted 我好困啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr安装,配置和后台管理相关的知识,希望对你有一定的参考价值。

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

  


1.solr的安装


      a.解压solr压缩包,将在dist中的solr的war文件夹拷贝到本地tomcat的webapps中,启动tomcat进行解压。


解压成功后,停掉tomcat


      b. 将解压后的solr包,将solr中的example/lib/ext中的jar包拷贝到刚刚解压好的tomcat中的solr的WEB-INF中的lib中


solr安装,配置和后台管理



以下目录中

solr安装,配置和后台管理



   


c .配置solrhome


  随便在一个文件夹中创建solrhome文件夹,这里我放到tomcat的同一目录的

 

 再将solr中的example/solr中的内核(以下文件)

solr安装,配置和后台管理


拷贝到刚刚创建的文件夹中

solr安装,配置和后台管理


在tomcat中的solr中的WEB-INF下的web.xml中修改如下,进行solrhome的配置


solr安装,配置和后台管理


注:这里需要配置多个内核的话,请将collection拷贝一份,改名核二,然后修改collection中的core.properties文件的name为你改名的核名


solr安装,配置和后台管理


重启tomcat,打开浏览器,输入localhost:8080/solr就可以进入solr的控制界面


solr安装,配置和后台管理


2.中文分词器,solr配置IK分词器


下载IK分词器,解压,如下:


solr安装,配置和后台管理


将其中的IKAnalyzer2012_u6.jar包,拷贝到tomcat中的solr项目中的lib中


solr安装,配置和后台管理


再将如图的两个文件

solr安装,配置和后台管理

拷贝到如图目录下(即项目的classpath下),并创建文件ext.dic


solr安装,配置和后台管理


注:这里的核心配置文件是IKAnalyzer.cfg.xml,打开该文件,(ps:解开ext.dic的注解)可以看到


solr安装,配置和后台管理该配置表示可以通过ext.dic和stopword.dic进行自定义中文词汇的加入。

比如在ext.dic中添加词汇:高富帅,那么他就会将高富帅看此一个词汇,不会再将其分割。


stopword.dic:停止扩展名,一般放入:是   词汇,

比如:添加是

分词:我是中国人

结果:我  中国人 中国  国人

是会被剔除词汇


最后,找到核一,在如图目录下,修改schema.xml文件,将该分词器添加进去


solr安装,配置和后台管理


在其中添加上该配置


 <fieldType name="text_ik" class="solr.TextField">

        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"></analyzer>

 </fieldType>


solr安装,配置和后台管理


重启tomcat,打开浏览器,来看看效果,选择配置的ik分词器,text_ik字段

分词:我是中国人:


solr安装,配置和后台管理


3.solr中的配置域的某些字段解释


  我们要配置一个域,首先需要在schema.xml文件中进行配置

 比如配置一个简单字段,将数据库中的anime_name字段进行域的配置,


基本域

<field name="anime_name" type="text_ik" indexed="true" stored="true"></field>


简单说明一下,域,相当于数据库中的一个字段,name表示域名,type表示类别,此类型必须是在该文件下配置过才能使用,比如,上面配置的IK分词器,就是配置了text_ik这个类型字段。其中默认的配置了我们常用的类型字段

solr安装,配置和后台管理

这些常用字段都已经配置好了的


indexed:是否索引,设置为true,那么用户可以通过域名:field进行搜索出该字段,设置为false,那么不可以根据anime_name进行搜索,只能通过其他方法查找出来。


stored,是否储存,比如复制域,只处理逻辑,不储存


required,是否必须,相当于数据库中的非空字段


multiValued:是否多值



复制域:

即组合域,将几个域合并起来,成为一个逻辑域


比如;需求查询一个字段又要在anime_name和anime_title中分别进匹配,那么我们可以将配置的anime_name和anime_title域进行合并成一个复制域(逻辑域)


这里有两个基本域:

<field name="anime_name" type="text_ik" indexed="true" stored="true"></field>


<field name="anime_title" type="text_ik" indexed="true" stored="true"></field>

那么将这两个域组合成一个逻辑域



<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true" />


<copyField source="anime_name" dest="item_keywords"></copyField>

<copyField source="anime_title" dest="item_keywords"></copyField>




动态域


配置动态生成某个字段,比如某些字段不能固定式,可以动态生成,如:anime_name,anime_title,查询字段不固定时,你也不知道会生成哪一个,就可以根据前缀+_*进行匹配


<dynamicField name="anime_*" type="string" indexed="true" stored="true"/>


这个配置就是动态生成anime开头的字段


4.solr后台数据的增删改查操作


添加

如图:

solr安装,配置和后台管理


查询结果

solr安装,配置和后台管理


可以看到数据插入进去了


修改:(由于solr的底层为Lucene,修改操作为先删除再添加)

修改和添加一样,只需要将id为要修改文档的id进行添加即可

solr安装,配置和后台管理

结果:


solr安装,配置和后台管理


删除:


删除id为1的

solr安装,配置和后台管理


语法删除:


solr安装,配置和后台管理


这种删除方法可以自定义语法,如删除所有*:*


查询:

(1).查询所有(这是默认的)

solr安装,配置和后台管理


(2).指定字段查询


如:查询anime_description中的含有 伙伴   字段的,查询到10条

solr安装,配置和后台管理


(3)过滤条件查询

       

如:将anime_description包含伙伴和anime_nation为日本的查出来

添加过滤条件anime_nation:日本,可以看到数据为5条了


solr安装,配置和后台管理

 

(4).范围查询


查询anime_num为[12-24]的字段

solr安装,配置和后台管理

可以看到数据变为3条,集数在12-24的查出来了


(5).排序


按照anime_num进行倒序排序


solr安装,配置和后台管理



(6).指定结果数


solr安装,配置和后台管理

第一个参数为开始下标,第二个表示查询条数 


(7).指定搜索字段查询


如:只查询id和anime_name

solr安装,配置和后台管理


结果:

solr安装,配置和后台管理


(8).高亮


如下,开启高亮,将anime_description域,查询的字段用高亮显示

solr安装,配置和后台管理


高亮显示:伙伴,查询结果

solr安装,配置和后台管理


以上是solr后台数据操作的一些基本操作.




5.批量数据导入


首先将导入数据依赖的jar包放入到核一中


在解压的solr文件中的如图的两个jar包,copy

solr安装,配置和后台管理



到solrhome/collection/lib,再将mysql数据库连接的驱动放入进去

solr安装,配置和后台管理




修改核一中的solrconfig.xml

solr安装,配置和后台管理


添加导入数据的requestHandler:dataimport,如下代码

solr安装,配置和后台管理

接下来配置data-config.xml(注:如果只写data-config.xml路径,则只能放在同级目录下)


在同级目录下创建data-config.xml


解释如图,连接数据库,进行表匹配进行导入

重启tomcat,打开浏览器进行如下导入

这样数据就导入到数据库中了


5.springDataSolr的使用







以上是关于solr安装,配置和后台管理的主要内容,如果未能解决你的问题,请参考以下文章

全文搜索技术——Solr

lucene&solr全文检索_7solr后台界面的介绍

hyii2后台管理系统-安装篇

Supervisor 后台进程管理

我与solr--solr后台相关介绍

电商后台管理项目d01