elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介绍下两者的用法,其实都差不多的,先安装插件,命令行:

安装ik插件:

plugin -install medcl/elasticsearch-analysis-ik/1.1.0

下载ik相关配置词典文件到config目录

cd config

wget http://github.com/downloads/medcl/elasticsearch-analysis-ik/ik.zip --no-check-certificate

unzip ik.zip

rm ik.zip

安装mmseg插件:

bin/plugin -install medcl/elasticsearch-analysis-mmseg/1.1.0

下载相关配置词典文件到config目录

cd config

wget http://github.com/downloads/medcl/elasticsearch-analysis-mmseg/mmseg.zip --no-check-certificate

unzip mmseg.zip

rm mmseg.zip

分词配置

ik分词配置,在elasticsearch.yml文件中加上

index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

index.analysis.analyzer.ik.type : “ik”这两句的意义相同

mmseg分词配置,也是在在elasticsearch.yml文件中

index:

analysis:

analyzer:

mmseg:

alias: [news_analyzer, mmseg_analyzer]

type: org.elasticsearch.index.analysis.MMsegAnalyzerProvider

index.analysis.analyzer.default.type : "mmseg"

mmseg分词还有些更加个性化的参数设置如下

index:

analysis:

tokenizer:

mmseg_maxword:

type: mmseg

seg_type: "max_word"

mmseg_complex:

type: mmseg

seg_type: "complex"

mmseg_simple:

type: mmseg

seg_type: "simple"

这样配置完后插件安装完成,启动es就会加载插件。

定义mapping

在添加索引的mapping时就可以这样定义分词器

{

"page":{

"properties":{

"title":{

"type":"string",

"indexAnalyzer":"ik",

"searchAnalyzer":"ik"

},

"content":{

"type":"string",

"indexAnalyzer":"ik",

"searchAnalyzer":"ik"

}

}

}

}indexAnalyzer为索引时使用的分词器,searchAnalyzer为搜索时使用的分词器。

Java mapping代码如下:

XContentBuilder content = XContentFactory.jsonBuilder().startObject()

.startObject("page")

.startObject("properties")

.startObject("title")

.field("type","string")

.field("indexAnalyzer","ik")

.field("searchAnalyzer","ik")

.endObject()

.startObject("code")

.field("type","string")

.field("indexAnalyzer","ik")

.field("searchAnalyzer","ik")

.endObject()

.endObject()

.endObject()

.endObject()定义完后操作索引就会以指定的分词器来进行分词。

附:

怎么配置linux中es搜索的主机名,分布式搜索elasticsearch中文分词集成相关推荐

  1. linux系统更改计算机名称,如何在Linux中设置或更改主机名

    默认情况下,系统主机名是在安装过程中设置的,或者如果您正在创建虚拟机,则会在启动时将其动态分配给实例,但是在某些情况下需要更改它. 本教程将引导您完成在Linux中更改主机名的过程,而无需重新启动系统 ...

  2. 分布式搜索elasticsearch中文分词集成

    elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介 ...

  3. linux命令行改名字,使用nmcli在Linux命令行中更改或设置主机名的方法

    如何使用nmcli在Linux机器上设置机器主机名?是否可以使用nmcli网络管理工具在CentOS/RHEL/Fedora/Ubuntu/Debian/RHCOS/FCOS机器上更改主机名?这两个问 ...

  4. 在 linux 中更新IP对主机名称实战脚本~~~

    IP更新对主机名修改 写脚本的目的:通过编脚本的方式来提高我们的效率,挺高我们的准确率降低工作中的失误. 本脚本的目的就是通过输入IP就可以快速修改IP和修改主机名称,不需要再进入配置文件编辑重启网卡 ...

  5. linux uts namespace 提供了主机名和域名的隔离 docker中被用到

    UTS,UNIX Time-sharing System namespace提供了主机名和域名的隔离.能够使得子进程有独立的主机名和域名(hostname),这一特性在Docker容器技术中被用到,使 ...

  6. 修改linux终端中的程序名字,在Ubuntu/Debian/Arch Linux/Fedora/OpenSUSE下更改主机名的方法...

    本文教你如何更改Linux计算机主机名(hostname),即在Ubuntu/Debian/Arch Linux/Fedora/OpenSUSE操作系统下更改主机名的方法. 前言 像Linux.BSD ...

  7. Linux配置(一):临时修改主机名 | 永久修改主机名 | 详解

    前言 此前,你可能对修改主机名,一知半解,云里雾里,似懂非懂,本文让你对这些知识点一目了然,赏心悦目. 概述 RHEL6修改主机名的配置文件是 /etc/sysconfig/network RHEL7 ...

  8. 百战RHCE(第十五战:Linux进阶命令十二-主机名和域名解析极简管理)

    哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...

  9. linux查找并删除进程,linux中查找并kill一个名为server的进程

    查找与进程相关的PID号 ps aux | grep server 说明: root 20158 0.0 5.0 1251592 95396 ? Sl 5月17 1:19 node /srv/mini ...

最新文章

  1. 用小神经网络和光谱仪优化关键词识别
  2. HDU6964 I love counting (字典树+莫队)
  3. JVM调优之实战案例(六)(转载)
  4. 用oracle列实现sqlserver的自增列
  5. Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
  6. Linux监控命令之==netstat
  7. 中object转为list集合_java基础集合小结
  8. [号外] Blazor wasm 其实也挺快!
  9. html前沿技术网页,HTML5新技术给网站带来了哪些改变
  10. html5中event获取data和class
  11. 太牛了! GitHub大牛呕心沥血整理的5000页Java学习手册文档
  12. 数字滤波算法——中值滤波
  13. 移动开发构架漫谈——反劫持实战篇
  14. 达人管理系统(CRM)原型图
  15. MybatisPlus实现数据库加解密
  16. 计算机课堂活跃小游戏,几个课堂小游戏(能活跃课堂气氛)
  17. 九龙证券|AI重塑半导体基础设施,人工智能发展持续加速
  18. 大数据开发和大数据分析有什么不同?
  19. 请求转发和请求重定向有什么区别?
  20. android adb shell 命令操作

热门文章

  1. C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?
  2. vue基础入门-应用 组件实例
  3. 这是可用于下一个项目的React Native工具列表
  4. api函数原型大全_如何使用您的API优先平台来使原型做好生产准备
  5. Part1 R语言的基本操作
  6. python+selenium处理chrome显示通知弹框
  7. Vue——基础(对象、属性样式操作、条件、循环、事件、绑定)
  8. 2020年 Google 开发者大会可以预约了
  9. Python的gc模块
  10. leetcode - 688. “马”在棋盘上的概率