1、为什么要配置?
1、我们知道要使用Solr进行搜索,肯定要对词语进行分词,但是由于Solr的analysis包并没有带支持中文的包或者对中文的分词效果不好,需要自己添加中文分词器;目前呼声较高的是IKAnalyzer中文分词器,其他的还没有对比过,等以后有空了再说。
2、如何配置
1)、下载IK Analyzer 2012FF_hf1.zip压缩包。下载网址:http://code.google.com/p/ik-analyzer/downloads/list
2)、解压压缩包,把IKAnalyzer2012FF_u1.jar拷贝到webapps\solr\WEB-INF\lib
3)、把解压包里面的IKAnalyzer.cfg.xml和stopword.dic拷贝到webapps\solr\WEB-INF\classes目录(第一篇文章已经创建了该文件夹)
4)、配置F:\JAVA\Solr\src\solr\collection1\conf(自己机子的具体目录)目录中的schema.xml配置文件,
a)、<types></types>节点里配置以下内容(最好是在最后一行,比较有规则一些)
<!-- IKAnalyzer 中文分词 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer">
</analyzer>
</fieldType>
查找资料的时候,有看到这样的配置
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
这样的配置据说是因为查询(query)采用IK自己的最大分词法,索引(index)则采用它的最细粒度分词法,有啥区别,还有就是为啥要分为这两种类别,还不懂,可见,还有很多知识点需要研究,等以后有时间再说了,目前就先不区分了。
(分析器一般出现在2个环境:建索引(index)和查询(query),大多数情况下这2个场景的分析过程都是一样,也就是说用的是相同的分析器。但是,你仍然可以为2个不同的阶段指字不同的分析器,这样是不是效果会更好,有待考究!)
b)、在<fields></fields>节点里配置
<field name="testik" type="text_ik" indexed="true" stored="false"/>
注:type="text_ik"中的text_ik就是对应a)中配置的名为text_ik的fieldType ,这种规则如果还不懂的话,那就得去参考Solr的学习使用之(二)schema.xml等的配置文件解析这一篇文章了,这就好比,先定义了一种数据类型A,然后添加字段的时候该字段的类型是A
3、效果
启动tomcat,浏览器敲入http://localhost:8080/solr,然后按照以下步骤操作,测试语句:
IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包。它使用了全新的正向迭代最细粒度切分算法。
需要注意的是:第5步时要选择正确,里面的select有两个大类别供选择,一个是Fields,一个是Types,其实就是对于之前配置的<fields></fields>和<types></types>,所以这里要看效果,可以有两种选择,一个是选择Fields下的testik,一个是选择Types下的text_ik,效果一样的,感兴趣的可以试下,至此,大功告成!
在路上……
Solr的学习使用之(三)IKAnalyzer中文分词器的配置的更多相关文章
-
2.IKAnalyzer 中文分词器配置和使用
一.配置 IKAnalyzer 中文分词器配置,简单,超简单. IKAnalyzer 中文分词器下载,注意版本问题,貌似出现向下不兼容的问题,solr的客户端界面Logging会提示错误. 给出我配置 ...
-
solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
-
在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器
最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程. 版本信息:solr版本6.2.0+tomcat8+jdk1.8 推荐阅读:so ...
-
solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...
-
IKanalyzer、ansj_seg、jcseg三种中文分词器的实战较量
转自:http://lies-joker.iteye.com/blog/2173086 选手:IKanalyzer.ansj_seg.jcseg 硬件:i5-3470 3.2GHz 8GB win7 ...
-
学习笔记(三)--Lucene分词器详解
Lucene-分词器API org.apache.lucene.analysi.Analyzer 分析器,分词器组件的核心API,它的职责:构建真正对文本进行分词处理的TokenStream(分词处理 ...
-
Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词
一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ...
-
elasticsearch中文分词器ik-analyzer安装
前面我们介绍了Centos安装elasticsearch 6.4.2 教程,elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,别急,已经有大拿把中文分词器做好了, ...
-
elasticsearch教程--中文分词器作用和使用
概述 本文都是基于elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 ·全新最小 ...
随机推荐
-
Bootstrap模态框(MVC)
BZ这篇博客主要是为大家介绍一下MVC如何弹出模态框.本文如果有什么不对的地方,希望大神们多多指教,也希望和我一样的小菜多多学习.BZ在这里谢过各位. 首先要在页面加上一个点击事件: @Html.Ac ...
-
Tomcat编码问题
在Tomcat7中,默认URIEncoding="iso8859-1",get请求由于url会完全出现在地址栏,所以传递中文到后台会乱码,需要改成URIEncoding=" ...
-
Python-Networkx
import networkx #建图 G = networkx.Graph() #节点数: len(G) #边数 G.number_of_edges() #节点表 G.nodes() #边表 G.e ...
-
js中ajax异步导致的一些问题
问题1:ajax默认是异步,所以在ajax中对外面定义的变量赋值,不能正确赋值 $("form").submit( var flag; $.ajax({ type: 'GET', ...
-
最简单好用的SSO - 能经得起几万并发用户的SSO 组件使用方法介绍
项目中使用了通用权限管理系统,该系统集成了单点登录功能,下面我来介绍下该单点登录实现的一些细节. 首先我们来看看其登录接口,系统本身支持各种登录方式: 1.公司名.用户名.密码 2.唯一账号.密码 3 ...
-
Flex:CSS3布局利器
实习以来做了三个小控件,都是用的CSS2.1里传统的DIV+CSS布局方式,综合使用position.margin.float.BFC等属性或特性将元素放到指定的位置上.然而面对日益复杂的界面,这些来 ...
-
Android定时器功能实现方法
在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...
-
JavaScript 判断一个字符串是否在另一个字符串中
传统上,JavaScript只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6又提供了三种新方法. includes():返回布尔值,表示是否找到了参数字符串. start ...
-
handler的使用
2014-04-15 10:45:06 简单学习了handler的使用. 昨天下载的问题,在手机上正常,在平板上不正常. 怀疑是网络的问题. 一直获得的流为空 2014-04-15 18:10:59 ...
-
【JavaScript中typeof、toString、instanceof、constructor与in】
JavaScript中typeof.toString.instanceof.constructor与in JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行 ...