Elasticsearch中文分词插件IK Analyer安装操作指导(本博第二篇)

本文主要是介绍Elasticsearch中文分词插件IK Analyer安装操作指导(本博第二篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自: 

Elasticsearch中文分词插件IK Analyer安装操作指导

1、安装mvn

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven


2、下载版本,注意ik版本要和elasticsearch版本配套
现场es版本2.1.0,配套ik版本为1.6.0
下载ik版本(源码)
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v1.6.0.zip


3、使用mvn编译安装
mvn clean
mvn compile
mvn package


4、编译完成后,把target/releases/elasticsearch-analysis-ik-1.6.0.zip文件解压
unzip target/releases/elasticsearch-analysis-ik-1.6.0.zip


把5个jar(commons-codec-1.9.jar,commons-logging-1.2.jar,elasticsearch-analysis-ik-1.6.0.jar,httpclient-4.4.1.jar,httpcore-4.4.1.jar)包复制es的lib/目录下
cp target/releases/*.jar $ES_HOME/lib/


把plugin-descriptor.properties到es的plugins/ik目录下
cp target/releases/plugin-descriptor.properties $ES_HOME/plugins/ik


5、将解压目录文件中config/ik文件夹(字典库)复制到ES安装目录config文件夹下。
cp config/ik $ES_HOME/config/


6、配置IK,在elasticsearch配置文件中添加ik分词类别
vi $ES_HOME/config/elasticsearch.yml
在文件最后添加如下:
index.analysis.analyzer.ik.type : "ik"


7、重启elasticSearch


8、验证分词安装


在浏览器中输入: http://192.168.1.100:9200/_analyze?analyzer=ik&pretty=true&text=我是中国人


查看分词效果
{
  "tokens" : [ {
    "token" : "我",
    "start_offset" : 0,
    "end_offset" : 1,
    "type" : "CN_CHAR",
    "position" : 0
  }, {
    "token" : "中国人",
    "start_offset" : 2,
    "end_offset" : 5,
    "type" : "CN_WORD",
    "position" : 1
  }, {
    "token" : "中国",
    "start_offset" : 2,
    "end_offset" : 4,
    "type" : "CN_WORD",
    "position" : 2
  }, {
    "token" : "国人",
    "start_offset" : 3,
    "end_offset" : 5,
    "type" : "CN_WORD",
    "position" : 3
  } ]
}


在浏览器中输入: http://192.168.1.100:9200/_analyze?analyzer=ik&pretty=true&text=sojson在线工具
{
  "tokens" : [ {
    "token" : "sojson",
    "start_offset" : 0,
    "end_offset" : 6,
    "type" : "ENGLISH",
    "position" : 0
  }, {
    "token" : "在线",
    "start_offset" : 6,
    "end_offset" : 8,
    "type" : "CN_WORD",
    "position" : 1
  }, {
    "token" : "工具",
    "start_offset" : 8,
    "end_offset" : 10,
    "type" : "CN_WORD",
    "position" : 2
  } ]
}


获取以上结果,表示IK安装成功。


下面为索引创建全文检索。
创建索引
curl -XPUT http://192.168.1.100:9200/index


配置映射
curl -XPOST http://192.168.1.100:9200/index/fulltext/_mapping -d'
{
    "fulltext": {
             "_all": {
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_max_word",
            "term_vector": "no",
            "store": "false"
        },
        "properties": {
            "content": {
                "type": "string",
                "store": "no",
                "term_vector": "with_positions_offsets",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word",
                "include_in_all": "true",
                "boost": 8
            }
        }
    }
}'


添加索引文档


curl -XPOST http://192.168.1.100:9200/index/fulltext/1 -d'
{"content":"美国留给伊拉克的是个烂摊子吗"}
'
curl -XPOST http://192.168.1.100:9200/index/fulltext/2 -d'
{"content":"公安部:各地校车将享最高路权"}
'
curl -XPOST http://192.168.1.100:9200/index/fulltext/3 -d'
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'
curl -XPOST http://192.168.1.100:9200/index/fulltext/4 -d'
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
'
curl -XPOST http://192.168.1.100:9200/index/fulltext/5 -d'
{"content":"陈云飞是一个好同学"}
'
curl -XPOST http://192.168.1.100:9200/index/fulltext/6 -d'
{"content":"白云飞是一个好同学"}
'


curl -XPOST http://192.168.1.100:9200/index/fulltext/7 -d'
{"content":"董元福是一个好同学"}
'


高亮查询
curl -XPOST http://192.168.1.100:9200/index/fulltext/_search  -d'
{
    "query" : { "term" : { "content" : "中国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}
'


词库更新
在192.168.1.101上面已经建立了远程词库位置在/var/www/html下面 名字是sougou.dic
如果搜索的时候没匹配到词,可以往sougou.dic尾部添加词,添加后elasticsearch会动态加载词库。
添加方法:在 192.168.1.101机器上,使用root用户执行以下命令:
#echo "动态加载" /var/www/html/sougou.dic


更新词库后,再往elasticsearch对应的index里添加数据,会使用新词库进行分词。




常见问题
问题1:"analyzer [ik_max_word] not found for field [content]"


解决办法:在所有es节点安装IK后,问题解决。




问题2:"failed to find analyzer [ik]"
解决办法:在es配置文件elasticsearch.yml的最后添加如下后问题解决:
index.analysis.analyzer.ik.type : "ik" 

这篇关于Elasticsearch中文分词插件IK Analyer安装操作指导(本博第二篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535654

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M