Elasticsearch
yinni11
这个作者很懒,什么都没留下…
展开
-
elasticsearch 安装ik中文分词
全文搜索对于中文分词很重要,所以需要ik插件分词支持中文分词英文使用空格很容易分词,中文需要根据词意进行分词,需要【字典】支持插件项目:https://github.com/medcl/elasticsearch-analysis-ik未安装前【分词测试】postmanpost http://localhost:9200/_analyze{ "text":"活动在广...转载 2020-02-25 10:52:26 · 479 阅读 · 0 评论 -
Elasticsearch搜索中文分词优化-ik_max_word,和ik_smart模式
Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个问题,既保证覆盖度又保证准确度? 搜索“RMB”时只会匹配到包含“RMB”关键词的内...转载 2020-02-25 10:40:14 · 10814 阅读 · 3 评论 -
Elasticsearch实践(三):Mapping
版本:Elasticsearch 6.2.4。Mapping类似于数据库中的表结构定义,主要作用如下:定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等Mapping完整的内容可以分为四部分内容:字段类型(Field datatypes) 元字段(Meta-Fields) ...转载 2020-02-23 21:15:52 · 510 阅读 · 0 评论 -
配置Elasticsearch的映射 (mapping)
1.1 什么是映射 (1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型.也就是说映射决定了Elasticsearch在建立倒排索引、进行检索时对文档采取的相关策略, 如数字类型、日期类型、文本类型等等.需要注意的是:检索时用到的分析策略, 要和建立索引时的分析策略相同, 否则将导致数据不准确.1.2 映射的组成每...转载 2020-02-19 10:37:02 · 641 阅读 · 0 评论 -
Elasticsearch Java API - 客户端连接之TransportClient(TransportClient,PreBuiltXPackTransportClient)(一)
Elasticsearch Java API 客户端连接一个是TransportClient,一个是NodeClient,还有一个XPackTransportClientTransportClient:作为一个外部访问者,请求ES的集群,对于集群而言,它是一个外部因素。NodeClient作为ES集群的一个节点,它是ES中的一环,其他的节点对它是感知的。XPackTranspo...转载 2019-12-17 15:50:37 · 4215 阅读 · 0 评论 -
Java 客户端操作 Elasticsearch
目前 Elasticsearch 有很多第三方 Java 客户端如 TransportClient,Jest,Spring Data Elasticsearch(Spring Data 对 Elasticsearch 的整合)还有官方的Java REST ClientSpringBoot 对 Elasticsearch 的支持SpringBoot 为 Elast...转载 2019-12-17 15:08:21 · 250 阅读 · 0 评论 -
CRUD 操作的工作原理
剖析写操作创建 ((C)reate)当我们发送索引一个新文档的请求到协调节点后,将发生如下一组操作:Elasticsearch 集群中的每个节点都包含了该节点上分片的元数据信息。更新 ((U)pdate) 和删除 ((D)elete)删除和更新也都是写操作。但是 Elasticsearch 中的文档是不可变的,因此不能被删除或者改动以展示其变更。那么,该如何删除和更新文档呢?...转载 2019-06-04 21:07:18 · 780 阅读 · 0 评论 -
Elasticsearch分布式架构原理图
基本概念elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的。核心思想就是在多台机器上启动多个es进程实例,组成了一个es集群。es中存储数据的基本单位是索引,比如说你现在要在es中存储一些订单数据,你就应该在es中创建一个索引,order_idx,所有的订单数据就都写到这个索引里面去,一个索引差不多就是相当于是mysql里的一张表。index ...原创 2019-06-04 21:30:12 · 6547 阅读 · 0 评论 -
主节点选举过程(含节点通讯原理)
备做转载 2019-06-11 17:32:22 · 646 阅读 · 0 评论 -
ES中的数据类型
KEYWORD("keyword"),STRING("text"),LONG("long"),DOUBLE("double"),DATETIME("date"),OBJECT("object"),NONE("text");转载 2019-06-28 09:50:24 · 1914 阅读 · 0 评论 -
ES读写的底层原理过程
es读写数据的工作原理(1)es写数据过程1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2)coordinating node,对document进行路由(根据documentID路由),将请求转发给对应的node(有primary shard)3)实际的node上的primary shard处理请求,然后将数据同步到r...转载 2019-06-19 14:58:13 · 5735 阅读 · 4 评论 -
基础知识与理论;ES与lucene的关联
在搜索这块,lucene是最流行的搜索库。elasticSearch是基于lucene的分布式搜索引擎。在es没火的时候,大家一般用solr1.Lucene只是一个库。想要使用它,你必须使用java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。2.Elasticsearch也使用Java开发并使用Lucen...转载 2019-06-18 20:10:29 · 2796 阅读 · 0 评论 -
es为什么要取消type? 或者为什么一个index下多个type会有问题
同一个index下的不同的type下的相同的filed,在同一个index下其实会被认为是同一个filed.否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。...转载 2019-04-25 19:11:11 · 4130 阅读 · 0 评论 -
Elasticsearch学习系列之常用查询表达式Query DSL
Elasticsearch查询模式一种是像传递URL参数一样去传递查询语句,被称为简单查询GET /library/books/_search //查询index为library,type为books的全部内容GET /library/books/_search?q=price:10 //查询index为library,type为books中price等于10的另一种是DSL语句来...转载 2018-12-13 14:48:04 · 382 阅读 · 0 评论 -
elasticsearch详解(一)——es是什么、能做什么?
es是什么elasticsearch简写es,es是一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。什么是全文检索全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的...转载 2018-09-14 09:31:59 · 2396 阅读 · 0 评论 -
ElasticSearch 模糊匹配查询
目前的需求输入:王? 女 济南 20-30能够查询以王开头的人的名字 性别为女性 地址为济南 *年龄为20-30分析及查询针对姓名,可直接在规范中定义好,王? 王* 王??,可直接搜索是否存在字符串; 针对性别,因只有男女,可直接进行匹配 地址为汉字,可作为if条件最后的一节,放到查询语句中; 年龄需要进行判断,存在数字的,或者存在“-”符号的,要进行日期加减,找出1987...转载 2018-12-13 17:21:20 · 1040 阅读 · 0 评论 -
ElasticSearch 常用的查询过滤语句
(这篇文章中的内容与Elasticsearch学习系列之常用查询表达式Query DSL相似)query 和 filter 的区别请看:http://www.cnblogs.com/ghj1976/p/5292740.htmlFilter DSLterm 过滤term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数...转载 2018-12-13 17:38:38 · 289 阅读 · 0 评论 -
java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4] 解决,实测有效
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><...转载 2018-12-25 20:05:28 · 1890 阅读 · 0 评论 -
Elasticsearch系列(五)----JAVA客户端之TransportClient操作详解
Elasticsearch JAVA操作有三种客户端:1、TransportClient2、JestClient3、RestClient还有种是2.3中有的NodeClient,在5.5.1中好像没有了。还有种是spring-data-elasticsearch,这里先以TransportClient来讲解CRUD,所用环境为:JDK1.8ES5.5.1Transpor...转载 2019-01-10 17:14:58 · 1233 阅读 · 0 评论 -
Elasticsearch 系列指南(三)——集成ik分词器
Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器)、english (英文分词)和chinese (中文分词)。其中standard 就是无脑的一个一个词(汉字)切分,所以适用范围广,但是精准度低;english 对英文更加智能,可以识别单数负数,大小写,过滤stopwords(例如“the”这个词)等;chinese 效果很差。这次主要玩这...转载 2019-01-10 20:26:49 · 354 阅读 · 1 评论 -
什么是倒排索引?
见其名知其意,有倒排索引,对应肯定,有正向索引。 正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。 在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现...转载 2019-01-11 10:57:34 · 397 阅读 · 0 评论 -
Elasticsearch之中文分词器插件es-ik(博主推荐)
前提什么是倒排索引?Elasticsearch之分词器的作用Elasticsearch之分词器的工作流程Elasticsearch之停用词Elasticsearch之中文分词器Elasticsearch之几个重要的分词器 elasticsearch官方默认的分词插件 1、elasticsearch官方默认的分词插...转载 2019-01-11 11:33:07 · 386 阅读 · 0 评论 -
ElasticSearch的基本原理与用法
一、简介ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式支持需要ZooKeeper的支持。这里有一个详细的ElasticSearch和Solr的对比:http://solr-vs-elasticsearch.com/二、基本用法集群(Clus...转载 2019-01-11 18:21:57 · 229 阅读 · 0 评论 -
elasticsearch-wildcard、regexp通配符与正则表达式查询
通配符与正则表达式查询假设将邮编作为 not_analyzed 的精确值字段索引,所以可以为其创建索引,如下:PUT /my_index{ "mappings": { "address": { "properties": { "postcode": { "type":...转载 2018-12-13 10:50:42 · 1045 阅读 · 1 评论