看到探究 | Elasticsearch CPU高排查思路,其实和昨天说的思路一致,首先考虑的就是扩大内存。

但其中有一点,是:插入数据的时候,副本数设置为0。分片数不可以修改,副本数是可以修改的。注意:分片过多,会导致:堆内存压力大。

这点有点疑问,副本和分片有什么差异?[……]

Read more

以下内容部分摘录整理自:ElasticSearch CPU和内存占用高的优化记录

当ElasticSearch天突然大面积出现查询超时,以下指令对于诊断是有帮助的。
查询所有segment的驻留内存的情况

curl "http://127.0.0.1:9200/_cat/segm[......]

Read more

本文衔接昨日的 ElasticSearch根据字段去重。

如果桶聚合时,不去重,那么会造成统计的数量和实际输出的数量对不上的情况。那么,如何在桶聚合中根据数据字段去重呢?

这个问题因为限定在ElasticSearch 5.3的版本,没办法用更新版本(6.8及以上)的cardin[……]

Read more

背景:已故前辈们设计的傻逼架构,造成比较奇葩的数据结构。比如一部相同code的电影,会有多个栏目code,用户组code对应的多条数据。然后索引就会出现冗余。
那这个架构咱不评价了,毕竟已经评价过了。就说下解决方案好了。

鉴于code不唯一了,所以多条数据冗余的情况,应当根据cod[……]

Read more

用ElasticSearch,一般都会自写一些特别需求的分析器(analyzer)吧,其中涉及到字符过滤器(character filter)、分词器(tokenizer)和过滤器(filter)的使用。
那么,这些涉及到的部分是如何在一次分析中执行的呢?顺序又是如何的呢?且看下文。[……]

Read more

text:会分词,ElasticSearch会先把对象进行分词处理,然后再再存入到索引。
当使用多个单词进行查询的时候,无法查到已分词过的内容。

keyword:不分词,直接整个存入索引。
可以进行完整地查询!默认是256个字符!

参考资料:
https://blog.c[……]

Read more

ElasticSearch bulk批量添加索引后,遍历每个结果,错误码列表如下:

操作
状态码

CREATE
201 创建成功

UPDATE
200 更新成功
201 创建成功(UPSERT)
400 更新失败
(比如需要更新的记录不存在)[……]

Read more

edge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。

但这两个分词器到底有什么区别呢?网上搜来搜去呢,都不是说人话的解释,如果不是深入了解Elasti[……]

Read more