精华内容
下载资源
问答
  • IK分词器

    2019-07-22 11:05:08
    IK分词器 1 目标 能安装IK分词器 会配置扩展词库和停用词库 2 讲解 在进行词条查询时,我们搜索“搜索”却没有搜索到数据! 原因:lucene默认是单字分词,在开发中不符合查询的需求,需要定义一个支持中文的...

     IK分词器

    1 目标

    • 能安装IK分词器
    • 会配置扩展词库和停用词库

    2 讲解

    在进行词条查询时,我们搜索“搜索”却没有搜索到数据!

    原因:lucene默认是单字分词,在开发中不符合查询的需求,需要定义一个支持中文的分词器。

    解决方案:IK分词器

    (1)IK分词器简介

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。

    (2)ElasticSearch集成IK分词器

    
    1.解压elasticsearch-analysis-ik-2.x后,将文件夹拷贝到elasticsearch-5.6.8\plugins下,并重命名文件夹为ik
    2. 重新启动ElasticSearch,即可加载IK分词器
    

    在使用ik分词器之前:使用rest方式访问elasticsearch的分词效果,默认的分词是standard

    http://127.0.0.1:9200/_analyze?analyzer=standard&pretty=true&text=我是中国人 效果如下:

    (3)IK分词器测试

    IK提供了两个分词算法ik_smart(最小切分) 和 ik_max_word(最细切分)

    最小切分:在浏览器地址栏输入地址

    http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员 效果如下:

    最细切分:在浏览器地址栏输入地址

    http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员 效果如下:

    (4)拓展词库

    传智播客,默认IK分词是单字分词,想让它做为一个词。

    <http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员,来自于传智播客>

    需要配置,IKAnalyzer.cfg.xml:

    配置文件中添加一个ext.dic和stop.dic,如果多个拓展词用逗号分开,如下:

    
    <?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">ext.dic</entry>
    	 <!--用户可以在这里配置自己的扩展停止词字典-->
    	<entry key="ext_stopwords">stop.dic</entry>
    	<!--用户可以在这里配置远程扩展字典 -->
    	<!-- <entry key="remote_ext_dict">words_location</entry> -->
    	<!--用户可以在这里配置远程扩展停止词字典-->
    	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
    

    ext.dic使用UTF-8编辑

    stop.dic使用UTF-8编辑

    重启Elasticsearch,再访问测试

    <http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员,来自于传智播客>效果如下:

    在ElasticSearch没有索引的情况下,插入文档,默认自动创建索引和索引映射是无法使用IK分词器的。

    要想让索引库可以使用ik分词器,必须要手动创建映射的配置。如何手动创建映射呢?下回分解。

     

     

    展开全文
  • ik分词器

    2020-11-03 11:12:06
    ik分词器 分词: 即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作。 默认的中文分词是将每个字看成一个词,比如“好好...

    ik分词器

    分词: 即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作。

    默认的中文分词是将每个字看成一个词,比如“好好学习”会被分为"好",“好”,“学”,“习” ,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

    如果要使用中文,建议使用ik分词器!

    IK提供了两个分词算法: ik_ smart和ik_ max_ word ,其中ik_ smart为最少切分, ik_ max_ _word为最细粒度划分!

    【ik_smart】测试:

    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": "我是社会主义接班人"
    }
    
    //输出
    {
      "tokens" : [
        {
          "token" : "我",
          "start_offset" : 0,
          "end_offset" : 1,
          "type" : "CN_CHAR",
          "position" : 0
        },
        {
          "token" : "是",
          "start_offset" : 1,
          "end_offset" : 2,
          "type" : "CN_CHAR",
          "position" : 1
        },
        {
          "token" : "社会主义",
          "start_offset" : 2,
          "end_offset" : 6,
          "type" : "CN_WORD",
          "position" : 2
        },
        {
          "token" : "接班人",
          "start_offset" : 6,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 3
        }
      ]
    }
    

    【ik_max_word】测试:

    GET _analyze
    {
      "analyzer": "ik_max_word",
      "text": "我是社会主义接班人"
    }
    //输出
    {
      "tokens" : [
        {
          "token" : "我",
          "start_offset" : 0,
          "end_offset" : 1,
          "type" : "CN_CHAR",
          "position" : 0
        },
        {
          "token" : "是",
          "start_offset" : 1,
          "end_offset" : 2,
          "type" : "CN_CHAR",
          "position" : 1
        },
        {
          "token" : "社会主义",
          "start_offset" : 2,
          "end_offset" : 6,
          "type" : "CN_WORD",
          "position" : 2
        },
        {
          "token" : "社会",
          "start_offset" : 2,
          "end_offset" : 4,
          "type" : "CN_WORD",
          "position" : 3
        },
        {
          "token" : "主义",
          "start_offset" : 4,
          "end_offset" : 6,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "接班人",
          "start_offset" : 6,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 5
        },
        {
          "token" : "接班",
          "start_offset" : 6,
          "end_offset" : 8,
          "type" : "CN_WORD",
          "position" : 6
        },
        {
          "token" : "人",
          "start_offset" : 8,
          "end_offset" : 9,
          "type" : "CN_CHAR",
          "position" : 7
        }
      ]
    }
    
    展开全文
  • IK 分词器

    2020-02-29 09:34:36
    IK 分词器 下载和安装 进入elasticsearch目录中执行以下命令: # 在线安装 [yangqi@yankee elasticsearch-7.3.0]$ ./bin/elasticsearch-plugin install ...

    IK 分词器

    下载和安装

    进入elasticsearch目录中执行以下命令:

    # 在线安装
    [yangqi@yankee elasticsearch-7.3.0]$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip
    

    下载完成后,可以在plugins目录中看到analysis-ik目录,里面的结构如下所示:

    在这里插入图片描述

    之后需要重新启动elasticsearch,才可以加载ik分词器插件,同时记得在三个节点都安装ik分词器插件。重新启动elasticsearch可以看到日志信息中有以下输入内容:

    在这里插入图片描述

    IK分词器分析过程

    在这里插入图片描述

    测试IK分词器
    # 测试 ik 分词器
    GET _analyze?pretty
    {
      "analyzer": "ik_smart",
      "text": "中华人民共和国国歌"
    }
    
    ==========================================
    # 结果
    {
      "tokens" : [
        {
          "token" : "中华人民共和国",
          "start_offset" : 0,
          "end_offset" : 7,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "国歌",
          "start_offset" : 7,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 1
        }
      ]
    }
    
    IK分词器的两种分词方法
    # 测试 ik 分词器,智能分词法
    GET _analyze?pretty
    {
      "analyzer": "ik_smart",
      "text": "中华人民共和国国歌"
    }
    
    # 测试 ik 分词器,最大分词法
    GET _analyze?pretty
    {
      "analyzer": "ik_max_word",
      "text": "中华人民共和国国歌"
    }
    
    分词的场景
    # analyzer 指定的是构建索引的时候的分词
    # search_analyzer 指定的是搜索关键字时候的分词	
    
    # 如果在搜索是不指定 search_analyzer,那么默认使用的是 analyzer 使用的分词
    
    # 最佳实践:索引的时候使用 ik_max_word,但是查询的时候使用 ik_smart
    
    展开全文
  • Ik分词器

    千次阅读 2020-05-03 15:39:07
    IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析...
    1. IK Analyzer简介
      IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。从 3.0 版本开始,IK 发展为面向 Java 的公用分词组件,独立 Lucene 项目,同时提供了对 Lucene 的默认优化实现。在 2012 版本中,IK 实现了简单的分词歧义排除算法,标志着 IK 分词器从单纯的词典分词向模拟语义分词衍化。
    2. IK Analyzer配置
      步骤:
      1、下载IKAnalyzer for solr5的源码包,然后使用Maven编译,得到一个文件IKAnalyzer-5.0.jar
      ik分词下载

    2、上传ik jar包到/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib目录中
    3、修改/usr/local/solr/server/solr/collection1/conf/managed-schema,添加fieldType内容:

     <fieldType name="text_ik" class="solr.TextField">
            <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
            <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
        </fieldType>
    

    然后,重启solr
    选择ik分词
    在这里插入图片描述
    由此看到配置成功
    Query界面简洁:

    q:查询关键字:必须的,如果查询所有使用*😗
    fq:(filter query)过虑查询:作用:在q查询符合结果中同时是fq查询符合的
    如:过滤查询价格从1到20的记录,使用price:[1 TO 20]
    也可以使用“*”表示无限,例如:
    20以上:price:[20 TO ]
    20以下:price:[
    TO 20]

    sort:排序:格式:sort=+<desc|asc>[,+<desc|asc>]… 。
    示例:product_price desc 按照价格从高到低进行排序
    product_price asc 按照价格从低到高进行排序
    start, rows:行的索引,从0开始,[start, rows]
    fl:指定返回那些字段内容:用逗号或空格分隔多个,不写默认返回全部配置的。
    df:指定一个默认搜索Field:一般默认
    wt:(writer type)指定输出格式:可以有xml, json, csv, python, php等格式
    hl:是否高亮:设置高亮Field,设置格式前缀和后缀。

    展开全文
  • 4 IK分词器 4.1测试分词器 在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终 找到词关联的文档。 测试当前索引库使用的分词器: post 发送:localhost:9200/...
  • Ik分词器和Ansj分词器

    2021-02-20 10:06:57
    开发某项目,使用到websocket以及IK分词器,用户输入信息,根据用户输入的信息,进行拆分词,匹配数据库的关键词,符合关键词规则的返回数据。 分词器 IK分词器 Ansj分词器 IK分词器 开源地址 IK分词器开源地址 ...
  • IK分词器源码

    2018-10-29 09:55:20
    IK分词器源码,可以研究IK分词器原理,也可以修改源码达到自己的业务需求。
  • Ik分词器github,本文参考了该内容。 IK分词器与elasticsearch 有版本对应关系,点击这里 安装 一、安装 第一种方式:下载预编译好的IK:https://github.com/medcl/elasticsearch-analysis-ik/releases,解压到...
  • ik分词器文档

    2019-04-04 13:58:58
    ik分词器的搭建.
  • 集成IK分词器 solr安装参见博文—-Apache solr入门 下载分词器jar包,github地址 将ik-analyzer-solr7-7.x.jar包上传到 $SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF/lib目录下 在$SOLR_INSTALL_HOME/...
  • 因为es本身的分词器对中文不是特别友好,所以使用ik分词器,分为 两种 模式,一种是粗 模式,一种是细模式,还希望能帮助到刚刚接触的人

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,527
精华内容 2,610
关键字:

ik分词器