es集群里的master node.data node和client node到底是怎么个意思,分别有何特点? master节点 主要功能是维护元数据,管理集群各个节点的状态,数据的导入和查询都不会走master节点,所以master节点的压力相对较小,因此master节点的内存分配也可以相对少些:但是master节点是最重要的,如果master节点挂了或者发生脑裂了,你的元数据就会发生混乱,那样你集群里的全部数据可能会发生丢失,所以一定要保证master节点的稳定性. data node 是负…
Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个问题,既保证覆盖度又保证准确度? 搜索“RMB”时只会匹配到包含“RMB”关键词的内容,实际上,“RMB”和“人民币”是同义词,我们希望用户搜索“RMB”和“人民币”可以相互匹配,ES同义词怎么配置?…
初次接触 Elasticsearch 的同学经常会遇到分词相关的难题,比如如下这些场景: 1.为什么明明有包含搜索关键词的文档,但结果里面就没有相关文档呢? 2.我存进去的文档到底被分成哪些词(term)了? 3.我自定义分词规则,但感觉好麻烦呢,无从下手 1.从一个实例出发,如下创建一个文档: 然后我们做一个查询,我们试图通过搜索 eat 这个关键词来搜索这个文档 ES的返回结果为0.这不太对啊,我们用最基本的字符串查找也应该能匹配到上面新建的文档才对啊! 先来看看什么是分词. 2. 分词 搜…
在介绍Meta更新流程前,我们先介绍一下ES中Meta的组成.存储方式和恢复方式. 1. Meta:ClusterState.MetaData.IndexMetaData Meta是用来描述数据的数据.在ES中,Index的mapping结构.配置.持久化状态等就属于meta数据,集群的一些配置信息也属于meta.这类meta数据非常重要,假如记录某个index的meta数据丢失了,那么集群就认为这个index不再存在了.ES中的meta数据只能由master进行更新,master相当于是集群的…
Elasticsearch的写 Elasticsearch采用多Shard方式,通过配置routing规则将数据分成多个数据子集,每个数据子集提供独立的索引和搜索功能.当写入文档的时候,根据routing规则,将文档发送给特定Shard中建立索引.这样就能实现分布式了. 此外,Elasticsearch整体架构上采用了一主多副的方式: 每个Index由多个Shard组成,每个Shard有一个主节点和多个副本节点,副本个数可配.但每次写入的时候,写入请求会先根据_routing规则选择发给哪个Sh…
es服务端是准确知道每个document分布在哪个shard上: search一个比较复杂的执行模式,因为我们不知道那些document会被匹配到,任何一个shard上都有可能,所以一个search请求必须查询一个索引或多个索引里面的所有shard才能完整的查询到我们想要的结果. 找到所有匹配的结果是查询的第一步,来自多个shard上的数据集在分页返回到客户端的之前会被合并到一个排序后的list列表,由于需要经过一步取top N的操作,所以search需要进过两个阶段才能完成,分别是query和…
Windows下安装ElasticSearch   ElasticSearch(简称ES)是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index)有点类似,但是ES天生具有分布式和实时的属性,本随笔演示在Windows环境中安装ElasticSearch,以及用于管理ElasticSearch的Head插件. ElasticSearch官网:http://www.elasticsearch.org 一,安装Java SE环境 1,从Java…
转:http://www.dataguru.cn/article-11094-1.html 曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司.加入 Elastic 之前,在搜索和运维等方面积累了超过七年的经验.Elasticsearch 国内首批用户,自 2010 年起就开始接触 Elasticsearch,是 ES 中文社区发起人,也是 Elastic 在中国的首位员工. 我最早是从 2010 年 3 月开始接触 Elasticsearch ,后面在…
前情提要: web服务往华为云上迁移 ================内网的好环境,相关配置=================== 1.web服务关于ES的集群配置如下: elasticAddress1=192.168.6.16 elasticAddress2=192.168.6.17 elasticPort1=9300 elasticPort2=9301 elasticClusterName=elasticsearch-crm 是在内网两台服务器上启动的ES集群,分别配置的IP和端口如上.ES…
C01.什么是Elasticsearch 1.什么是搜索 垂直搜索(站内搜索) 互联网的搜索:电商网站,招聘网站,各种app IT系统的搜索:OA软件,办公自动化软件,会议管理,员工管理,后台管理系 2.如果用数据库做搜索会怎么样 数据库在做某些搜索(模糊搜索)时,效率会很差,是不太靠谱的. 3. 什么是全文检索? 数据库搜索的弊端:数据库里有100万条数据,模糊匹配要扫描100万次,每次扫描都要匹配文本所有字符,还无法拆解开来检索. 全文检索:会将100万条数据拆分开来,建立倒排索引,搜索的时…