`

solr 添加 IK 分词器和sougou词库

    博客分类:
  • solr
 
阅读更多

 

 

 

1  solr索引和搜索过程:

 



 

 

2  分词器:

 

在创建索引时会用到分词器,在使用字符串搜索时也会用到分词器,这两个地方要使用同一个分词器,否则可能会搜索不出结果。
Analyzer(分词器)的作用是把一段文本中的词按一定规则进行切分。对应的是Analyzer类,这是一个抽象类,切分词的具体规则是由子类实现的,所以对于不同的语言(规则),要用不同的分词器。(也就是说不同的分词器分词的规则是不同的!)

 

分词器的一般工作流程:
1、切分关键词
2、去除停用词(去掉干扰字符)
3、对于英文单词,把所有字母转为小写(搜索时不区分大小写)

 

停用词:

 

有些词在文本中出现的频率非常高,但是对文本所携带的信息基本不产生影响。
英文 
a、an、the、of...
中文
的、了、着、是 、标点符号等
文本经过分词之后,停用词通常被过滤掉,不会被进行索引。
在检索的时候,用户的查询中如果含有停用词,检索系统也会将其过滤掉(因为用户输入的查询字符串也要进行分词处理)。
排除停用词可以加快建立索引的速度,减小索引库文件的大小。
英文停用词:http://blog.csdn.net/shijiebei2009/article/details/39696523
中文停用词http://wenku.baidu.com/link?url=I8__RQMCRwSwcru8nPHLu7U5pvt7h8z_kEVU1vgN9Td1UWN88u_qyxZ4k-fERH9SJCXn7wiMWPH6aBpb2ZTnXE7ro9JEl-rGFh4KUxl7YZu

 

 

 

中文分词器

单字分词:
如:“我们是中国人”效果:“我”“们”“是”“中”“国”“人”(StandardAnalyzer、ChineseAnalyzer就是这样)
二分法分词:按两个字进行切分。
如:“我们是中国人”,效果:“我们”、“们是”、“是中”、“中国”、“国人”。(CJKAnalyzer就是这样)。
词库分词:按某种算法构造词,然后去匹配已建好的词库集合,如果匹配到就切分出来成为词语。通常词库分词被认为是最理想的中文分词算法。

 

几个重要的分词器


 

 


 3  使用IKAnalyzer2012分词和搜狗词库:

 

 

1 把IKAnalyzer2012FF_u1.jar包导入solr-web应用下的lib目录下solr4/example/solr-webapps/webapp/web-inf/lib/

2 把IKAnalyzer.cfg.xml和stopword.dic文件放置到solr-web类路径下(classes)  solr4/example/solr-webapps/webapp/WEB-INF/classes/

3 修改solr的schema.xml 增加ik的引用 
<!--配置IK分词器-->
    <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>

其中索引则采用它的细粒度分词法,查询采用IK自己的最大分词法。


4 添加自定义词库
  将sougou.dic无BOM utf8格式词库拷贝到solr4/example/solr-webapps/webapp/WEB-INF/classes/下和stopword.dic同级
  
 修改solr/example/solr-webapps/webapp/WEB-INF/classes/IKAnalyzer.cfg.xml
 添加sougou.dic  写绝对和相对路劲都可以  相对路径是相对IKAnalyzer.cfg.xml而言的  
 <?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">     
<properties>     
    <comment>IK Analyzer 扩展配置</comment>   
    <!--用户可以在这里配置自己的扩展字典    
    <entry key="ext_dict">sougou.dic;</entry>    
    -->   
    <entry key="ext_dict">ext.dic;</entry>   
    <!--用户可以在这里配置自己的扩展停止词字典-->   
    <entry key="ext_stopwords">stopword.dic;</entry>    
</properties>   

5  修改solr的schema.xml 将字段比如 name使用默认分词类型修改为 我们定义的 text_ik 重启solr 这样查询name的时候默认就使用text_ik我们的分词器了

 

 

ik查询结果图如下:

 



 

 

 

附件是修改好的 IKAnalyzer2012FF_u1.jar,  schema.xml , sougou.dic  ,  IKAnalyzer.cfg.xml

 


 

 

 

 

  • 大小: 30.5 KB
  • 大小: 6.6 KB
  • 大小: 55.6 KB
分享到:
评论

相关推荐

    支持solr5.5 solr6.0中IK分词需要的资料

    标题和描述提到的是针对Solr 5.5和Solr 6.0版本的IK分词器支持的相关资料,这意味着这些资源可能包括配置文件、文档、示例代码或者更新日志,帮助用户在这些特定版本的Solr中集成和优化IK分词器。 首先,让我们来看...

    solr ik分词器

    本教程将详细解释如何在Solr中安装和使用IK分词器。 首先,让我们理解一下什么是分词器。在文本检索和自然语言处理领域,分词是将连续的文本分解成有意义的词语单元(如单词或短语)的过程。对于中文,由于没有明显...

    solr导入 IK分词

    总之,IK分词器在Solr中的应用大大提升了中文文本检索的准确性和效率。通过合理的配置和优化,可以更好地服务于各种中文信息检索场景。在实际项目中,理解并掌握IK分词器的原理和使用方法,将有助于提升Solr的中文...

    支持 Solr7 的 ik 分词器

    2. **Solr7.0集成IK分词器.docx**:这是一份详细的文档,指导用户如何在 Solr 7 中配置和使用 ik 分词器。它会涵盖安装步骤、配置参数设置以及可能出现的问题及其解决方案,对于初次使用者来说非常有价值。 3. **ik...

    针对Solr6.6.0的IK分词器

    这些jar文件需要被添加到Solr的类路径中,以便Solr在启动时能够识别和使用IK分词器。 "ext.dic"文件是扩展词典,它包含了一些用户自定义的词语或者专业术语。这些词汇可能不在标准的分词库中,但对特定领域或应用来...

    solr配置IK分词器Jar包和配置文件

    标题中的“solr配置IK分词器Jar包和配置文件”意味着我们需要将IK分词器的相关库文件(Jar包)添加到Solr的类路径中,并且对Solr的配置文件进行适当的修改,以便Solr知道如何使用这个分词器。 首先,你需要下载IK...

    solr-4.10.3+ik分词器

    在Solr的配置文件中,如“solr/conf/solrconfig.xml”和“solr/conf/managed-schema”中,我们需要指定使用IK分词器。添加或修改相应的分析器设置,比如设置默认的查询分析器和索引分析器为IKAnalyzer。重启Solr服务...

    Solr6.5 IK分词器

    文件`ikanalyzer-solr5`可能是一个包含IK分词器的Solr插件包,用于Solr 5版本,虽然与标题中的Solr 6.5不完全匹配,但在实际应用中,IK分词器的版本通常与Solr版本保持一致,以确保最佳兼容性和性能。如果需要在Solr...

    IK分词器,支持solr6.60高版本,支持智能分词和细粒度分词

    IK分词器,支持solr6.60高版本,支持智能分词和细粒度分词,经本人测试可以使用的,支持高版本,智能分词用IKCrudeAnalyzer

    Solr IK分词器

    solr 中文查询分词器,把一串字符分作多个词语进行查询

    IK分词solr5.0.0

    在Solr 5.0.0中使用IK分词器,可以显著提高中文文本的检索效果,通过智能分词和新词识别,使得用户输入的关键词能够更准确地匹配到文档中的内容。同时,通过调整分词器的配置,还能进一步优化搜索体验,满足不同的...

    solr(ik分词器)需要的jar包

    Ik分词器(IK Analyzer)是一个专门为Java设计的中文分词库,广泛应用于Solr和Elasticsearch等搜索引擎中。 标题中的"solr(ik分词器)需要的jar包"指的是为了在Solr中使用IK分词器,我们需要下载并添加相应的Java ...

    solr ik分词器 6.6.1版本

    5. **与Elasticsearch的兼容性**:描述中提到的"elasticsearch-analysis-ik-6.6.1"表明IK分词器不仅适用于Solr,还兼容Elasticsearch,这是一个流行的数据存储和搜索平台。这意味着IK分词器在两个平台上都能提供一致...

    IK分词器_ikanalyzer-solr5

    将IK分词器集成到Solr中,可以优化中文文本的索引和查询性能,提高搜索的准确性和召回率。 IK分词器的核心优势在于其强大的分词能力。它支持自定义词典,用户可以根据实际需求添加或删除词汇,以适应特定领域的分词...

    solr4.3的IK分词器

    最新版solr4.3的IK分词器,中文分词效果良好!对付一般的大众分词没有问题

    solr IK分词需要的资料

    使用IK分词器的热更新功能,可以在不重启Solr的情况下动态加载新词库,提高系统的灵活性。 总结来说,集成和使用IK分词器是提升Solr6.0中文搜索性能的关键步骤。正确配置并结合实际情况进行优化,能有效提升搜索...

    solr ik中文分词

    将这个JAR文件添加到Solr的lib目录下,可以让Solr使用IK分词器进行中文分词处理。 **深蓝词库转换.exe** 深蓝词库转换工具可能是用来将词库文件转换成适合IK Analyzer或其他分词器使用的格式。词库对于分词器来说...

    Solr-ik分词

    通过以上步骤,你可以在Solr中使用Ik分词器对中文内容进行高效索引和查询,同时结合MySQL数据库实现数据的实时同步和检索。 总结一下,Ik分词器是Solr处理中文文本的关键组件,它通过动态词汇表和两种分词模式提供...

Global site tag (gtag.js) - Google Analytics