嗯,这个问题的背景是制作Elasticsearch 8.15.3的镜像时,发现没设置xcpak安全插件相关参数,但日志输出了安全插件的运行。单节点测试通常不需要启用安全插件的,如何处理呢?
修改配置文件,添加如下内容后重启服务即可:
xpack.secur[......]
那工作中实际碰到的情况哈,这个比较麻烦,因为Elasticsearch集群本身还是用的阿里云的,不是自建的,很烦,后台提供的功能基本上对解决red状态没有任何作用。
那如何不扩容的情况下解决问题呢?基本流程如下:
这个问题是Java栈的一个同事提出来的,按道理游标本身多线程处理完全可以的啊,毕竟感觉像是Redis scan。
后来深入了解了下,发现对于多线程来说,其实官方有更优雅的姿势对游标scroll进行处理的,随手总结如下:Sliced scroll示[……]
聊聊ElasticSearch修改字段类型的方法
众所周知,ElasticSearch 修改字段类型一般操作是删索引重建索引。但这样的操作意味着数据会丢,重建索引如果数据量庞大,你需要耗费更多时间。当然,为了规避问题,通常会在备用索引进行这样删除重建,但[……]
不是我用,是同事要调整ES的索引,所以作为方案提供方,我需要给出具体如何创建使用分词器。好在,我有json,而同事找到了一篇介绍的博文。
整理如下:创建setting.json,内容如下:
{
"index.max_ngram_diff[......]
这个用法其实如果人工设置索引映射的话,通常是可以规避nested这种复杂类型的,但如果你的上游写入ES用了这样的类型,那么查询的时候是需要指定path的。
示例代码:
{
"query": { "nested&[......]
Elasticsearch 解析器啊,不知道的时候会默认用自己的standard解析器进行。
但是呢,如果你需要按自己指定字符分词解析,是要自定义tokenizer分词器的,类型为:char_group,属性tokenize_on_chars为你要指定的字符串数[……]
Elasticsearch自己创建索引指定解析器分词器细节的时候,字段是可以设置term_vector(词向量)属性的。
这属性默认值是no(默认值),其他可选值:
| No term vectors are stored.(default) |