程序员

solr7.4配置core创建及分词配置

2018-08-02  本文已影响0人  非小惰

1、solr配置

        首先我使用的是solr7.4所以下载解压后无需进行tomcat关联,直接在解压目录下solr-7.4.0/bin/solr start 就可以运行 ,也可进入到bin目录使用./solr start 进行运行,solr默认端口为8983,如需要自定义端口,则在启动是后面加上 -p 如./solr start -p 8888,启动后,在浏览器中输入http://localhost:8983/solr即可跳转到solr控制台页面


2、创建Core

      solr以文件的方式将数据存储在core下,接下来我们就创建自己的core,点击控制台左边的Core admin

点击Add Core

core home的路径的查看我们稍后再聊,点击Add Core,我们认为会在core home路径下,创建了一个名为coreTest的文件夹并完成core的创建,然而

上方红色报错信息中指出的/Users/edz/Documents/ide/solr/solr-7.4.0/server/solr/ 即为core home路径,可以用如下方式查看

我们进入到core home中

发现仅仅是创建了coreTest文件夹,core并未成功创建,因为我们缺少solrconfig.xml,将solr-7.4.0/server/solr/configsets/_default/下的conf文件夹,复制到新建的core目录下,即coreTest,再次点击Add Core

创建成功,点击左侧Core Selector选择新添加的coreForCheck

添加自定义key

看到了存储类型,就要开始讲一下分词了,讲分词之前我们先看一下field type的类别,

他的这些类别实际上是在配置文件中,配置文件路径如下 solr home/coreTest(上面创建core时的instanceDir路口)/conf/managed-schema 我们打开看一下

下拉列表中的类型都是在此文件中配置的,solr默认添加了英文的分词,但是没有中文分词,这意味在此文件中并无英文分词的filed type,如果我们要进行分词,需进行如下操作


3、分词配置

下载ik分词的jar包

链接: https://pan.baidu.com/s/116BEGAB0HXMtIei8SViyqw 密码: d3hy

将jar包复制到路径solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib下,在上文提到的配置文件managed-schema中添加中文分词的field类别

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

     <analyzer type="index"> 

         <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="false"/> 

         <filter class="solr.LowerCaseFilterFactory"/>

     </analyzer> 

     <analyzer type="query"> 

         <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="true"/>

         <filter class="solr.LowerCaseFilterFactory"/> 

     </analyzer> 

 </fieldType>

添加solr自带的中文分词

将solr-7.4.0\contrib\analysis-extras\lucene-libs中的lucene-analyzers-smartcn-7.4.0.jar 复制到

solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib下,在配置文件managed-schema中添加中文分词的field类别

<fieldType name="worddata_smart" class="solr.TextField" positionIncrementGap="100">     <analyzer type="index">

         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>     </analyzer>

     <analyzer type="query"> 

         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>     </analyzer>

 </fieldType>

重启solr, bin/solr restart -force

再次进行添加

为方便比较,再建一个field

再添加一个使用自带分词

进行分词校验

结果如下

无中文分词的字段

ik分词

自带分词

上述为基本solr操作,下一步研究添加自定义分词词汇😁

上一篇下一篇

猜你喜欢

热点阅读