摘要:Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个
阅读全文
摘要:初次接触 Elasticsearch 的同学经常会遇到分词相关的难题,比如如下这些场景: 1.为什么明明有包含搜索关键词的文档,但结果里面就没有相关文档呢? 2.我存进去的文档到底被分成哪些词(term)了? 3.我自定义分词规则,但感觉好麻烦呢,无从下手 1.从一个实例出发,如下创建一个文档: 然
阅读全文
摘要:在介绍Meta更新流程前,我们先介绍一下ES中Meta的组成、存储方式和恢复方式。 1. Meta:ClusterState、MetaData、IndexMetaData Meta是用来描述数据的数据。在ES中,Index的mapping结构、配置、持久化状态等就属于meta数据,集群的一些配置信息
阅读全文
摘要:Elasticsearch的写 Elasticsearch采用多Shard方式,通过配置routing规则将数据分成多个数据子集,每个数据子集提供独立的索引和搜索功能。当写入文档的时候,根据routing规则,将文档发送给特定Shard中建立索引。这样就能实现分布式了。 此外,Elasticsear
阅读全文
摘要:es服务端是准确知道每个document分布在哪个shard上; search一个比较复杂的执行模式,因为我们不知道那些document会被匹配到,任何一个shard上都有可能,所以一个search请求必须查询一个索引或多个索引里面的所有shard才能完整的查询到我们想要的结果。 找到所有匹配的结果
阅读全文
摘要:es集群里的master node、data node和client node到底是怎么个意思,分别有何特点? master节点 主要功能是维护元数据,管理集群各个节点的状态,数据的导入和查询都不会走master节点,所以master节点的压力相对较小,因此master节点的内存分配也可以相对少些;
阅读全文
摘要:curl 'localhost:9200/_cat/health?v' 绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用. 2.通过如下语句,我们可以获取集群的节点列表: 3。通过如下语句,列出所有索引: 4.创建索引 现在我们创建一个名为“cus
阅读全文