博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
solr搜索之demo和集成IKAnalyzer(二)
阅读量:6785 次
发布时间:2019-06-26

本文共 2979 字,大约阅读时间需要 9 分钟。

1      新建demo-solr

关闭运行的solr应用。

进入solr目录:D:\solr-4.10.2\example

1example目录下创建demo-solr文件夹;

2./solr下的solr.xml拷贝到demo-solr目录下;

3demo-solr下创建demo目录,并且在demo目录下创建confdata目录;

4example\solr\collection1\core.properties文件拷贝到example\demo-solr\demo下,并且修改name=demo

5example\solr\collection1\conf下的schema.xmlsolrconfig.xml拷贝到example\demo-solr\demo\conf下;

6修改schema.xml文件,使其配置最小化:

1solr配置中:<field>name为“_version”“_root_”这两个是必须保留字段

2<field>type属性值,必须进行<fieldType>定义匹配;】

<?xmlversion="1.0" encoding="UTF-8" ?>

<schemaname="example" version="1.5">

      

   <field name="_version_"type="long" indexed="true" stored="true"/>

   <field name="_root_"type="string" indexed="true" stored="false"/>

       <!—type类型,indexed是否索引,stored是否存储,required是否必须,multiValued是否可以为多个值 -->

   <field name="id"type="string" indexed="true" stored="true"required="true" multiValued="false" />

   <field name="title"type="string" indexed="true" stored="true"multiValued="true"/>

       <!—唯一key-->

       <uniqueKey>id</uniqueKey>

 

    <fieldType name="string"class="solr.StrField" sortMissingLast="true" />

    <fieldType name="long"class="solr.TrieLongField" precisionStep="0"positionIncrementGap="0"/>

</schema>

7、修改solrconfig.xml文件,修改一些配置,大部分保持默认:

  1. 将所有的<lib>标签注释掉;(notepad++ 注释快捷键:ctrl+q  ctrl+k

  1. 搜索<str name="df">text</str>替换成<strname="df">title</str>所有的都要替换

df : default field默认查询索引字段。原来默认text字段是存在的,经过第6步更改以后,是不存在的。所以全部更改为title字段。

  1. <searchComponent name="elevator"class="solr.QueryElevationComponent" >注释掉(这个的功能类似百度的竞价排名):

8、启动solr:进入:D:\solr-4.10.2\example

java -Dsolr.solr.home=taotao-solr -jar start.jar     指定core项目启动(更改solr应用,指定应用启动):

-D设置启动运行时参数格式:-D参数名=参数值)

报错:

solrconfig.xml配置文件注释有问题!注意上述:7步骤c) 

 

去掉这个多余的注释,再试:

 

成功!

在不使用其他分词的情况下,测试Analysis分析分词,效果:

2      集成IKAnalyzer中文分词器

下载IKAnalyzer: 

IK分词器官方版本是不支持Lucene4.X的,有人基于IK的源码做了改造,支持了Lucene4.X

 

 

1、  IKAnalyzer-2012-4x.jar拷贝到example\solr-webapp\webapp\WEB-INF\lib下;

2、  目录:D:\solr-4.10.2\example\demo-solr\demo\conf,在schema.xml文件中添加fieldType

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

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

</fieldType>

<?xmlversion="1.0" encoding="UTF-8" ?>

<schema name="example"version="1.5">

 

   <field name="_version_"type="long" indexed="true" stored="true"/>

   <field name="_root_"type="string" indexed="true" stored="false"/>

   <field name="id"type="string" indexed="true" stored="true"required="true" multiValued="false" />

   <!-- 指定分词类型 -->

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

 

       <uniqueKey>id</uniqueKey>

 

    <fieldType name="string"class="solr.StrField" sortMissingLast="true" />

    <fieldType name="long"class="solr.TrieLongField" precisionStep="0"positionIncrementGap="0"/>

       <!-- 添加IKAnalyzer中文分词器 -->

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

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

       </fieldType>

 

</schema>

注意:StrFieldTextField的区别就是:TextField做分词,StrField是不做分词。

3、重启solr应用,在solr界面进行Analysis分析分词测试:

 

查看title字段定义:已经更新指定为IKAnalyzer分词器

 

本文转自 wyait 51CTO博客,原文链接:http://blog.51cto.com/wyait/1945897,如需转载请自行联系原作者

你可能感兴趣的文章
腾讯云答治茜:云计算为独角兽和传统企业提供了哪些沃土?
查看>>
Spark on YARN 部署案例
查看>>
RedHat发布JBoss 7.2,完全支持Java EE 8规范
查看>>
kubernetes1.9.2基于kubeadm的高可用安装HA
查看>>
「性能优化之道」每秒上万并发下的Spring Cloud参数优化实战
查看>>
App启动流程
查看>>
原理 | 分布式链路跟踪组件 SOFATracer 和 Zipkin 模型转换
查看>>
我的第一篇博客
查看>>
手把手教你如何用Python从PDF文件中导出数据(附链接)
查看>>
维珍银河完成最长距离火箭飞行,下一步剑指太空旅行
查看>>
[Python]attributeError:'module' object has no attribute 'dump'
查看>>
Docker系列教程11-使用Nexus管理Docker镜像
查看>>
业界最全,阿里云混合云灾备服务上线!
查看>>
Windows Linux 子系统可以在资源管理器中打开
查看>>
WebStorm文件类型关联设置
查看>>
13.1 Spring MVC 关于controller的字符编码
查看>>
理发店与 App 定价模型
查看>>
ES6(数组)
查看>>
php simplexml_load_file 函数执行不稳定
查看>>
C#,VB.NET如何将Word转换为PDF和Text
查看>>