概要 本篇主要讲解倒排索引的基本原理以及ES常用的几种分词器介绍. 倒排索引的建立过程 倒排索引是搜索引擎中常见的索引方法,用来存储在全文搜索下某个单词在一个文档中存储位置的映射.通过倒排索引,我们输入一个关键词,可以非常快地获取包含这个关键词的文档列表. 我们先看英文的,假设我们有两个文档: I have a friend who loves smile love me, I love you 为了建立倒排索引,我们先按最简单的用空格把每个单词分开,可以得到如下结果: *表示该列文档中有这个词…
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.ElasticSearch搜索引擎安装配置中文分词器IK插件 4.ElasticSearch搜索引擎安装配置拼音插件pinyin 5.ElasticSearch搜索引擎在JavaWeb项目中的应用 一.IK简介 ElasticSearch(以下简称ES)默认的分词器是标准分词器Standard,如果直接使…
layout: blog title: Bert系列伴生的新分词器 date: 2020-04-29 09:31:52 tags: 5 categories: nlp mathjax: true typora-root-url: .. 本博客选自https://dxzmpk.github.io/,如果想了解更多关于transformers模型的使用问题,请访问博客源地址. 概括 这篇文章将对Bert等模型使用的分词技术进行介绍.同时会涉及这些分词器在huggingface tokenizers库…
原文:使用Docker 安装Elasticsearch.Elasticsearch-head.IK分词器 和使用 Elasticsearch的安装 一.elasticsearch的安装 1.镜像拉取 docker pull elasticsearch:tag 2.启动 docker run -it -e "discovery.type=single-node" --name="es" -p 9200:9200 -p 9300:9300 elasticsearch 3…
中文分词器 在lunix下执行下列命令,可以看到本来应该按照中文"北京大学"来查询结果es将其分拆为"北","京","大","学"四个汉字,这显然不符合我的预期.这是因为Es默认的是英文分词器我需要为其配置中文分词器. curlHTTP://192.168.79.131:9200/shb01/_analyze?pretty=true -d'{"text":"北京大学"…
/** * 系统环境: vm12 下的centos 7.2 * 当前安装版本: elasticsearch-2.4.0.tar.gz */ ElasticSearch中内置了许多分词器, standard, english, chinese等, 中文分词效果不佳, 所以使用ik 安装ik分词器 下载链接: https://github.com/medcl/elasticsearch-analysis-ik/releases 版本对应关系: https://github.com/medcl/ela…
前面已经对”IK中文分词器“有了简单的了解:  但是可以发现不是对所有的词都能很好的区分,比如:  逼格这个词就没有分出来. 词库 实际上IK分词器也是根据一些词库来进行分词的,我们可以丰富这个词库. IK分词器(IK Analysis for Elasticsearch)给了我们一个基本的配置: https://github.com/medcl/elasticsearch-analysis-ik  修改我们es实例中ik插件的配置: cd elasticsearch-5.3.0/plugins…
IK分词插件的安装 ES集群环境 VMWare下三台虚拟机Ubuntu 14.04.2 LTS JDK 1.8.0_66 Elasticsearch 2.3.1 elasticsearch-jdbc-2.3.1.0 IK分词器1.9.1 clustername:my-application 分配如下表: 虚拟机 | IP | node-x ----|---- search1 | 192.168.235.133 | node-1 search2 |192.168.235.134 | node-2…
(1)docker镜像下载 docker pull elasticsearch:5.6.8 (2)安装es容器 docker run -di --name=changgou_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8 9200端口(Web管理平台端口) 9300(服务默认端口) 浏览器输入地址访问:http://192.168.211.132:9200/ (3)开启远程连接 上面完成安装后,es并不能正常使用,elast…
IK压缩包下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v6.7.0,需要下载对应的版本 我也上传了 https://yvioo.lanzous.com/iaztq3i 2.下载完成之后,上传到服务器,然后解压到elasticsearch的plugins文件夹下,然后重命名为analysis-ik 也可以先在别处解压之后,然后重命名,以下代码,每个人可能不一样,根据自己实际的来 mv elastics…
一.Lucene分词器详解 1. Lucene-分词器API (1)org.apache.lucene.analysi.Analyzer 分析器,分词器组件的核心API,它的职责:构建真正对文本进行分词处理的TokenStream(分词处理器).通过调用它的如下两个方法,得到输入文本的分词处理器. public final TokenStream tokenStream(String fieldName, Reader reader) public final TokenStream token…
正向索引 正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档. 这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面.若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除.但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下. 尽管正排表的工作原理非常…
前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch之分词器的工作流程 Elasticsearch之停用词 Elasticsearch之中文分词器 Elasticsearch之几个重要的分词器 elasticsearch官方默认的分词插件 1.elasticsearch官方默认的分词插件,对中文分词效果不理想. 比如,我现在,拿个具体实例来展现下,验证为什么,es官网提供的分词插件对中文分词而言,效果差. [hadoop@HadoopMaster elas…
下面先简单描述一下mapping是什么? 自动或手动为index中的type建立的一种数据结构和相关配置,简称为mappingdynamic mapping,自动为我们建立index,创建type,以及type对应的mapping,mapping中包含了每个field对应的数据类型,以及如何分词等设置 当我们插入几条数据,让ES自动为我们建立一个索引 PUT /website/article/ { "post_date": "2019-08-21", "t…
概述   本文都是基于elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 ·全新最小化安装的centos 7.5 ·elasticsearch 6.4.0 认识中文分词器 在博文elasticsearch分词器中提到elasticsearch能够快速的通过搜索词检索出对应的文章归功于倒排索引,下面通过中文举例看看倒排索引. 中文分词器作用以及效果 中文分词器是做什么的呢? what…
# ElasticSearch安装中文分词器IKAnalyzer  本篇主要讲解如何在ElasticSearch中安装中文分词器IKAnalyzer,拆分的每个词都是我们熟知的词语,从而建立词汇与文档关系的倒排索引, 但是如果不使用中文分词,就会把文档每个字拆分成了一个词,对我们中文检索很不友好,本博客系统就是在ElasticSearch中安装了IKAnalyzer分词器从而实现首页的搜索功能,下面开始讲解吧! ###  1.在线安装  由于我的ElasticSearch 是安装在Docker中…
1. 概述 分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引. 今天我们就来聊聊分词器的相关知识. 2. 内置分词器 2.1 概述 Elasticsearch 中内置了一些分词器,这些分词器只能对英文进行分词处理,无法将中文的词识别出来. 2.2 内置分词器介绍 standard:标准分词器,是Elasticsearch中默认的分词器,可以拆分英文单词,大写字母统一转换成小写. simple:按非字母的字符…
如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. 这是因为使用了Elasticsearch中默认的标准分词器,这个分词器在处理中文的时候会把中文单词切分成一个一个的汉字,因此引入中文的分词器就能解决这个问题. 本篇文章按照下面的内容进行描述: 分词器的作用 安装IK 简单的测试 模拟测试 安装elasticsearch-analysis-piny…
1.概述    elasticsearch用于搜索引擎,需要设置一些分词器来优化索引.常用的有ik_max_word: 会将文本做最细粒度的拆分.ik_smart: 会做最粗粒度的拆分.ansj等.    ik下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases    ansj下载地址:https://github.com/NLPchina/elasticsearch-analysis-ansj    安装的时候一定要…
文档的增删改查 增加文档 使用elasticsearch-head查看 修改文档 使用elasticsearch-head查看 删除文档 使用elasticsearch-head查看 查看文档的三种方式 一:根据id查询 二:querystring查询 query:  需要查询的具体内容 default_field:  查询的字段 注意:将搜索内容"搜索服务器"修改为"钢索",同样也能搜索到文档 原因:default_operator:默认运算符 有AND.OR,默…
1.简介 ElasticSearch默认自带的分词器,是标准分词器,对英文分词比较友好,但是对中文,只能把汉字一个个拆分.而elasticsearch-analysis-ik分词器能针对中文词项颗粒度进行粗细提取,所以对中文搜索是比较友好的.IK分词器有两种类型ik_smart和ik_max_word,前者提取词项粒度最粗,后者最细.而ElasticSearch默认并不支持IK分词器,需要自己安装. 2.前期准备 2.1下载elasticsearch-analysis-ik分词器组件 到GitH…
Elasticsearch-IK分词器 一.简介 因为Elasticsearch中默认的标准分词器(analyze)对中文分词不是很友好,会将中文词语拆分成一个一个中文的汉字,所以引入中文分词器-IK. 使用默认 二.安装IK分词器 1.先下载ik分词器 https://github.com/medcl/elasticsearch-analysis-ik/releases 注意 一定要下载和Elastic版本相同的IK分词器 2.我们将ik分词器上传到我们的es的plugins/ik目录下,ik…
1. 中文分词器 1.1 默认分词器 先来看看ElasticSearch中默认的standard 分词器,对英文比较友好,但是对于中文来说就是按照字符拆分,不是那么友好. GET /_analyze { "analyzer": "standard", "text": "中华人民共和国" } 我们想要的效果是什么:"中华人民共和国"作为一整个词语. 得到的结果是: { "tokens" :…
注: elasticsearch 版本6.2.2 1)集群模式,则每个节点都需要安装ik分词,安装插件完毕后需要重启服务,创建mapping前如果有机器未安装分词,则可能该索引可能为RED,需要删除后重建. 域名 ip master 192.168.0.120 slave1 192.168.0.121 slave2 192.168.0.122 2)Elasticsearch 内置的分词器对中文不友好,会把中文分成单个字来进行全文检索,不能达到想要的结果,在全文检索及新词发展如此快的互联网时代,I…
在之前我们学的都是英文,用的也是英文的standard分词器.从这一节开始,学习中文分词器.中国人基本上都是中文应用,很少是英文的,而standard分词器是没有办法对中文进行合理分词的,只是将每个中文字符一个一个的切割开来,比如说中国人 --> 中 国 人 在中方搜索引擎领域,比较成熟和流行的,就是ik分词器.         一.在elasticsearch中安装ik中文分词器     (1)git clone https://github.com/medcl/elasticsearch-a…
1:默认的分析器-- standard 使用默认的分词器 curl -XGET 'http://hadoop01:9200/_analyze?pretty&analyzer=standard' -d '我爱中国'curl -XGET 'http://hadoop01:9200/_analyze?pretty&analyzer=simple' -d '我爱中国'​ 这就是默认的分词器,但是默认的分析器有时候在生产环境会出现问题,比如: curl -XPUT 'http://hadoop01:…
lucene.Solr.Elasticsearch 1.倒排序索引 2.Lucene是类库 3.solr基于lucene 4.ES基于lucene 一.Elasticsearch 核心术语 特点: 1.es可以支持空格查询,多个关键字 2.空格支持 3.拆词查询 4.搜索内容可以高亮 5.海量数据查库 ES 可以对照着 数据库 来理解: 索引index    -------->    表 文档 document    -------->    行(记录) 字段 fields    ------…
正向索引的结构如下: “文档1”的ID > 单词1:出现次数,出现位置列表:单词2:出现次数,出现位置列表:…………. “文档2”的ID > 此文档出现的关键词列表. 一般是通过key,去找value.  当用户在主页上搜索关键词“华为手机”时,假设只存在正向索引(forward index),那么就需要扫描索引库中的所有文档,找出所有包含关键词“华为手机”的文档,再根据打分模型进行打分,排出名次后呈现给用户.因为互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时…
前言 前面的案例使用standard.english分词器,是英文原生的分词器,对中文分词支持不太好.中文作为全球最优美.最复杂的语言,目前中文分词器较多,ik-analyzer.结巴中文分词.THULAC.NLPIR和阿里的aliws都是非常优秀的,我们以ik-analyzer作为讲解的重点,其它分词器可以举一反三. 概要 本篇主要介绍中文分词器ik-analyzer的安装使用.自定义词库以及热更新方案. 分词器插件安装 我们Elasticsearch 6.3.1版本为例,集成IK分词器,其他…
一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如处理文本中的html标签字符.处理完后再交给tokenizer进行分词.一个analyzer中可包含0个或多个字符过滤器,多个按配置顺序依次进行处理. tokenizer:分词器,对文本进行分词.一个analyzer必需且只可包含一个tokenizer. token filter:词项过滤器,对to…