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、分词配置
链接: 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操作,下一步研究添加自定义分词词汇😁
网友评论