ElasticSearch速学 - IK中文分词器 、elasticdump数据导出导入、字段分词

Elasticsearch 在线安装IK分词器 注意:最后的数字为版本,要和你的es版本对应!ik_max_word :最细切分。ik_smart :最少切分。 阅读详情

我们前面简单的学习了分析器,包含了分词器、过滤器、字符过滤器等等。
这些内置的分析器很多时候并不能满足我们的需求,比如处理中文的时候。

比较流行的中文分析器组件

https://github.com/medcl/elasticsearch-analysis-ik

安装maven

1、maven官网

http://maven.apache.org/download.cgi

2、下载地址

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz

这里写图片描述

3、解压

tar zxvf apache-maven-3.5.0-bin.tar.gz 

解压完成目录名称是apache-maven-3.5.0,该目录下还有以下文件或目录:

bin  boot  conf  lib  LICENSE  NOTICE  README.txt

这里写图片描述

4、配置

需要配置环境变量,这里对当前用户进行修改,你要修改/etc/profile也可以。

vi ~/.bash_profile
#加入
export M2_HOME=~/apache-maven-3.5.0 #这个目录改成你自己的目录
#修改PATH
PATH=$PATH:$HOME/bin:$M2_HOME/bin

这里写图片描述
保存并退出之后,执行:

source ~/.bash_profile

5、查看maven是否安装成功

mvn --version

这里写图片描述

下载IK分词器

https://github.com/medcl/elasticsearch-analysis-ik/releases
安装文档下载对应版本,这里用的版本是5.3.0。

我们下载源码(熟悉一下maven)

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v5.3.0.tar.gz --no-check-certificate
#解压
tar zxvf v5.3.0.tar.gz 
#进入目录
cd elasticsearch-analysis-ik-5.3.0

这里写图片描述

mvn package -e
#用maven编译项目,生成target目录,
#编译、测试代码,生成测试报告,生成jar/war文件

(如果第一次,这个过程很慢,请耐心等待)

这里写图片描述

生成出来的文件会在

.../target/releases/elasticsearch-analysis-ik-5.3.0.zip

我们需要解压elasticsearch-analysis-ik-5.3.0.zip这个文件,然后把解压之后的内容全部拷贝到elasticsearch的安装目录的plugins/ik中(自己创建个ik目录)
这里写图片描述

最后 重启你的elasticsearch实例。
(注意,我们前面已经做了elasticsearch集群,我这里有2个es节点,都需要拷贝这个插件)

查看你的插件

重新启动2个ES实例之后,再启动我们的”Kibana”这个工具:

kibana-5.3.0-linux-x86_64/bin/kibana

使用ES的api查看插件:
这里写图片描述

测试一下分词
1、我们先准备几条新闻数据

POST blog/news/901
{
  "title":"前端开发框架vue.js开发实践总结",
  "content":"如果你之前有用过angular.js或别的双向绑定的js库,那么你会有一种自来熟的感觉。当然,vue作为一个轻量的前端视图层工具,与angular相比,还是有很明显的区别的",
  "tags":"vue js angulars 前端 工具"
}
POST blog/news/902
{
  "title":"React.js初学者应该知道的9件事",
  "content":"我们从最基本的开始。React不是一个 MVC框架,好吧,它根本就不是一个框架。它只是一个渲染视图的库。如果你对 MVC 熟悉的话,你就会意识到 React.js只对应了V这部分,如果它插手了M或C的逻辑,你就需要考虑用其它方法来解了",
  "tags":"mvc 框架 react 逻辑"
}
POST blog/news/903
{
  "title":"大风厂\"一一六事件\"的总结报告",
  "content":"郑西坡得知护厂工人强烈抗议拆迁,山水集团就找来警察来维持秩序,陈岩石觉得是经济纠纷,怎么可以派警察,他赶忙给京州市警察局长赵东来打电话,赵东来长根本不知情,并且肯定说是假警察",
  "tags":"大风厂 总结报告 达康书记"
}
POST blog/news/904
{
  "title":"总的来说,大风厂事件的处理结果还是让领导满意的",
  "content":"侯亮平调查的好,领导很满意。此处省略一万字。",
  "tags":"大风厂 领导 侯亮平"
}

我们现在就有了这些数据了:
这里写图片描述

2、测试

是不是我们安装好中文分词器就可以马上起到作用了呢?
这里写图片描述
并没有什么卵用,把“技术总结”这个词分成了这样,,,,

因为在加入分词器之后,需要对字段分别设置(哪些字段需要中文分词)

修改mapping

mapping可以对索引字段进行类型描述一集搜索分析行为

#针对索引
GET blog/_mapping

这里写图片描述

#针对索引和类型
GET blog/news/_mapping

这里写图片描述

我们这里需要对mapping进行修改,但是很不幸的是,我们一开始就把索引建好了,数据也创建了。mapping都已经生成啦。

mapping的anlayzer设置文档:
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analyzer.html
我们试着创建一下mapping吧:

PUT /blog
{
  "mappings": {
    "news": {
      "properties": {
        "title": { 
          "type": "text",
          "analyzer": "ik_max_word"
        }
      }
    }
  }
}

这里写图片描述

这个时候我们想到了备份恢复数据的方法

1、创建一个备份

PUT _snapshot/mybackup/bak2?wait_for_completion=true
{
  "indices": "blog"
}

这里写图片描述

2、删除索引

DELETE blog

3、然后创建索引加上mapping

PUT /blog
{
  "mappings": {
    "news": {
      "properties": {
        "title": { 
          "type": "text",
          "analyzer": "ik_max_word"
        }
      }
    }
  }
}

这里写图片描述

这个时候我们来看一下:
这里写图片描述

4、恢复备份的数据

我们那么多新闻数据不能不要了啊

#先要关闭索引啦
POST blog/_close
##恢复备份的数据
POST _snapshot/mybackup/bak2/_restore?wait_for_completion=true
{
  "indices": "blog"
}
#打开索引
POST blog/_open

5、恢复数据之后我们再来测试
这里写图片描述
什么?没有任何效果。这是因为我们之前的备份也会备份mapping信息,恢复数据的同时mapping信息也还原啦。由此我们得出,不能这么玩。

elasticdump数据导出导入

我们需要导出纯数据(不要mapping信息)
https://github.com/taskrabbit/elasticsearch-dump

使用这个工具,需要node.js.
1、安装node.js

#下载
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz --no-check-certificate
#解压
xz -d node-v6.10.2-linux-x64.tar.xz
tar xvf node-v6.10.2-linux-x64.tar

把解压之后的文件夹拷贝的你目录(可以重命名)

2、依然要修改环境配置

vi ~/.bash_profile

这里写图片描述

保存之后,执行命令(为了立即生效):

source ~/.bash_profile

我们查看一下node.js是否安装成功?

[admin@localhost bin]$ node --version
v6.10.2
[admin@localhost bin]$ npm --version
3.10.10
[admin@localhost bin]$ 

可以下载elasticdump

为了避免全局安装
我们创建一个目录estools,然后我们安装到这个目录中。

cd estools/
npm install elasticdump

使用elasticdump

cd estools/node_modules/.bin/

导出data:

./elasticdump \
  --input=http://localhost:9200/blog \
  --output=blog.json \
  --type=data

这里写图片描述

然后我们接着来:

#删除索引
DELETE blog
#创建
PUT blog
{
  "mappings": {
    "news": {
      "properties": {
        "title": { 
          "type": "text",
          "analyzer": "ik_max_word"
        }
      }
    }
  }
}

接下来,我们把blog.json导入索引里面:

./elasticdump \
  --input=blog.json \
  --output=http://localhost:9200/blog \
  --type=data

这里写图片描述
最后我们再来测试一下分词的情况:

POST blog/_analyze
{
  "field": "title",
  "text": "java开发技术实战"
}

ok,我们发现中文分词成功
这里写图片描述

使用elasticdump实现es数据导入导出示例(持续更新中) 使用elasticdump实现es数据导入导出示例 阅读详情

相关推荐

手把手教你设计反激开关电源:从整流滤波到PCB布局的实战避坑指南

本文是一份反激开关电源的实战设计指南,重点解析了从整流滤波电路到PCB布局的关键细节与常见陷阱。文章深入探讨了输入保护元件协同设计、EMI滤波器优化、整流桥与滤波电容选型,并详细阐述了如何通过优化PCB布局来确保安规、最小化功率回路面积以控制噪声,旨在帮助工程师和爱好者规避设计误区,提升电源的可靠性与性能。

yhn45678901的博客 690

ElasticSearch数据库导出数据——(以6.8.2为例)

使用elasticdump导出、导入数据

su8888i的博客 7125

eLabRadio软件无线电虚实结合仿真开发平台简介

在使用仿真平台时,不要关闭设备或断开设备与PC机之间的网络连接,否则,仿真平台将无法正常工作。注:采用eNodeX设备认证方式,当出现“设备不存在”的报错时,请检查计算机IP是否和硬件设备IP处于同一网段,或者是否是先连接好网线,再开启硬件设备的。①此登录方式下,需要先建立软件与硬件的通信:在登录窗口点击【网络配置】,参照下图输入设备IP,服务器地址无需设置,设置完成后点击确认,此时登录界面无需设置账号密码;,拷贝到电脑上,使用管理员权限运行setup.exe,下一步直到安装完成,桌面会生成快捷方式。

weixin_55349105的博客 6317

kibana 导出es索引数据 和数据导入到索引

我们今天来实践操作来通过kinbana导出索引数据和导入数据到es索引。kibana 导出es索引数据:6.0版本的kinbana和7.0不一样,页面按钮位置不太一样。但是功能都一样。

1万+

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 444

FLoRA: 基于异构低秩适应的联邦微调大语言模型

大语言模型(LLMs)的快速发展推动了人工智能的进步,预训练的LLMs可以通过微调适应各种下游任务。联邦学习(FL)通过利用客户端的本地数据进行原位计算,进一步增强了隐私保护的微调,消除了数据移动的需求。然而,考虑到LLMs的巨大参数量,微调LLMs对于资源受限且异构的FL客户端来说是一个挑战。之前的方法采用了低秩适应(LoRA)进行高效的联邦微调,但在LoRA适配器上使用了传统的FL聚合策略。这些方法导致了数学上不准确的聚合噪声,降低了微调效果,并且未能解决异构LoRA的问题。

tiger00O的博客 2065

如何把Elasticsearch中的数据导出为CSV格式的文件

本文结合用户实际需求用按照数据量从小到大的提供三种方式从ES中将数据导出成CSV形式。本文将重点介Kibana/高效导出的插件、工具集,通过本文你可以了解如下信息:1,从kibana导出数据到csv文件2,logstash导出数据到csv文件3,es2csv导出数据到csv文件以上3种方法是常见的ES导出到CSV文件的方法,实际工作中使用也比较广泛。大家可以多尝试。当然。elasticsearch-dump也能导,但是比较小众,相当于Mysqldump指令。

大叶子不小的博客 6779

音频分割:长语音音频 分割为 短语音音频 - python 实现

音频分割:长语音音频 分割为 短语音音频 - python 实现

DATABALL 的博客 1205

ES(elasticsearch) - kibana导出csv

kibana导出csv图解式教学

ChengHuanHuaning的博客 1万+

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 587

Windows 10下三菱PLC控件安装报错Error Number:-119的终极解决方案(附详细步骤)

本文针对Windows 10系统安装三菱PLC控件时常见的Error Number:-119报错,提供了深度分析与终极解决方案。文章剖析了该错误源于oleaut32.dll文件版本冲突,并详细介绍了通过设置兼容性模式、手动注册DLL、直接安装MX Component以及高级系统修复等多种方法,帮助用户彻底解决此安装难题,顺利搭建PLC开发环境。

weixin_29289821的博客 328

干货 | Elasticsearch、Kibana数据导出实战

1、问题引出 以下两个导出问题来自Elastic中文社区。 问题1、kibana怎么导出查询数据? 问题2:elasticsearch数据导出 就像数据库数据导出一样,elasticsearch可以么? 或者找到它磁盘上存放数据的位置,拷贝出来,放到另一个es服务器上或者转成自己要的数据格式? 实际业务实战中,大家或多或少的都会遇到导入、导出问题。 根据数据源的不同,基本可以借助: 1、程序...

铭毅天下Elasticsearch 3万+

stable diffusioncontrolNet 预处理器/模型的下载及安装使用教程

首先说明,controlNet 的模型 不同于stable diffusion 模型,这一点一定要区分清楚。下面提供多个ControlNet 预处理器+ 专用模型的百度网盘下载链接,都是由群友整理贡献,但各自包含的版本不同,大家可自行选择。推荐下载紫色链接内的模型,fp16版文件更小,稍微新一些的controlnet插件还添加了对control-lora的支持(注意,要求controlnet插件的版本比12月16号新(1.1.423以上)才能正常识别),推荐下载;

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3384

Elasticsearch、ik分词器、elasticsearch-head、Kibana的认识与安装

不过开发中,我们一般使用elasticsearch-head来查看elasticsearch的数据而已,真正对elasticsearch进行增删查改操作一般我们使用kibana或者postman或者编程语言实现的客户端来完成。默认情况下,elasticsearch是外国开发的,所以本身对于中文分词构建分词索引的支持是不行的。访问elasticsearch-head:http://127.0.0.1:9100/,会发现无法连接elasticsearch,原因是因为跨域问题导致。

m0_66925868的博客 1694

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe

在这篇文章中,我们将看到如何从 Elasticsearch 索引和 Kibana 的 CSV 报告中导出数据 - post-url 到 pandas 数据帧。数据的可视化可以在 Kibana 中完成,但如果你想对数据进行更精细的分析并创建更动态的可视化,将数据导出到 pandas dataframe 将是一个不错的选择。在如下的演示中,我将使用 Elastic Stack 8.5.3 来进行展示。

Elastic 中国社区官方博客 2591

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

进阶-第30__彻底掌握IK中文分词_IK分词器配置文件讲解以及自定义词库实战

1、ik配置文件 ik配置文件地址:es/plugins/ik/config目录 IKAnalyzer.cfg.xml:用来配置自定义词库 main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起 quantifier.dic:放了一些单位相关的词 suffix.dic:放了一些后缀 surname.dic:中国的姓氏 ...

qq_35524586的博客 675

elasticdump导出数据

elasticdump导出数据

qq_30593367的博客 1140

ElasticSearch-IK分词器(elasticsearch插件)安装配置和ElasticSearch的Rest命令测试

ElasticSearch-IK分词器(elasticsearch插件)安装配置和ElasticSearch的Rest命令测试

小孔靠得住的博客 4968

ElasticSearch之IK分词器安装以及使用介绍

elasticsearch 默认的内置分词器对中文的分词效果可能并不理想,因为它们主要是针对英文等拉丁语系的文本设计的。如果要在中文文本上获得更好的分词效果,我们可以考虑使用中文专用的分词器。IK 分词器是一个开源的中文分词器插件,特别为 Elasticsearch 设计和优化。它在中文文本的分词处理上表现出色,能够根据中文语言习惯进行精细的分词。IK 分词器允许用户自定义词典,可以添加新词、调整词频等,以便更好地适应特定的领域或需求。自定义词典可以提高分词的准确性和召回率。

qq_39939541的博客 1万+

Elasticsearch8.4.3安装最新ik分词器elasticsearch-analysis-ik【v8.4.3版本】(参考官方文档)

本教程详细指导如何在elasticsearch8.4.3安装最新ik分词器(v8.4.3),还有编译ik的源码来生成安装包。

u014282578的博客 5263

Elasticsearch:IK 中文分词器

Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze { "text": "我爱北京天安门", "analyzer": "standard" } 如果我们使用的是standard的分词器,那么结果就是: { "tokens" : [ { "token" : "我", "st.........

Elastic 中国社区官方博客 8869

使用elasticdump对ES数据进行导入导出操作

ES导入导出

Brave_heart4pzj的博客 1567

kibana数据导入导出_使用Kibana或API导入数据到Elasticsearch

(可选)在Console界面,执行命令创建待存储数据的索引,并指定自定义映射来定义数据类型。如果待导入数据的集群已存在可用的索引,则不需要再创建索引;如果待导入数据的集群不存在可用的索引,则需要参考如下示例创建索引。例如:在Console界面,执行如下命令,创建索引“my_store”,并指定自定义映射来定义数据类型。7.x之前版本PUT /my_store{"settings": {"numbe...

weixin_39593744的博客 1672

使用kibana查询es

使用kibana查询ES

9076

Elasticsearch ES数据迁移方法及注意事项

查询并导出数据拷贝ES物理目录/文件ES快照数据备份和恢复。

m0_67403073的博客 3316
上一篇: 谓语动词的分类
下一篇: ElasticSearch速学 - IK中文分词器远程字典设置
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值