ES--常用配置(settings)

本文探讨了ES服务器磁盘满时的故障处理,涉及读写限制解除、磁盘空间释放、配置变更以提升最大结果窗口,并解决version_conflicts问题,重点在技术细节和解决方案上。
  1. 一般为es服务器磁盘爆满,空间使用率超过es规定阈值时

    'error': 
    	{
    		'reason': 'blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];', 
    		'type': 'cluster_block_exception'
    		}
    

    df -h 查看服务器磁盘使用情况
    释放服务器空间,先考虑删除一些早期的备份、日志文件
    释放空间后,还需修改配置

    PUT _settings
    {
          "index.blocks.read_only_allow_delete":"false"
    }
    

    最后可以再次尝试修改或新增操作

  2. max_result_window问题,es中使用from + size进行数据翻页时,默认可以翻到1W的量,超过该数量(会有报错提示)应考虑使用scroll方法翻页。或通过API修改阈值(据说也可以在.yml文件中定义该参数,不过估计得重启服务)。

    PUT _settings
    {
          "max_result_window":"999999999"  //  ^--^暂时没发现设置偏大有啥影响。设置小一点儿,可以比较直接的防止爬虫程序遍历接口数据~ε~
    }
    
  3. 使用script连续操作接口数据时,第一次执行成功,第二次出现version_conflicts文档的版本冲突问题!


### 下载和安装 Elasticsearch 8.4.0 分词器插件 Elasticsearch 提供了多种分词器插件来支持不同的语言和特殊需求。对于中文分词,最常用的插件是 **IK Analyzer**(IK分词器)和 **Jieba**(结巴分词器)。以下是针对 Elasticsearch 8.4.0 的分词器插件下载与安装步骤。 #### IK Analyzer(IK分词器) IK Analyzer 是一个开源的中文分词器,支持 Elasticsearch 的自定义分词需求。它提供两种分词模式:`ik_smart` 和 `ik_max_word`[^4]。 ##### 下载 IK分词器的 GitHub 仓库提供了适用于不同 Elasticsearch 版本的插件包。Elasticsearch 8.4.0 对应的版本通常是 **IK Analyzer 8.4.0**。 访问以下链接下载插件: - [IK Analyzer GitHub Release 页面](https://github.com/medcl/elasticsearch-analysis-ik/releases) 找到对应版本的插件包,例如: ``` elasticsearch-analysis-ik-8.4.0.zip ``` ##### 安装 1. 进入 Elasticsearch 安装目录下的 `plugins` 文件夹: ```bash cd /usr/share/elasticsearch/plugins ``` 2. 创建一个文件夹用于存放 IK 分词器插件: ```bash mkdir ik ``` 3. 将下载的插件包复制到 `ik` 文件夹中,并解压: ```bash unzip elasticsearch-analysis-ik-8.4.0.zip -d ik/ ``` 4. 重启 Elasticsearch 服务以加载插件: ```bash systemctl restart elasticsearch ``` 5. 验证插件是否安装成功: ```bash curl http://localhost:9200/_cat/plugins ``` #### Jieba 分词器 Jieba 是另一个常用的中文分词器,支持基于 Python 的分词逻辑。Elasticsearch 可以通过插件形式集成 Jieba。 ##### 下载 Jieba 分词器通常需要手动构建或从第三方仓库获取。可以通过以下方式获取适用于 Elasticsearch 8.4.0 的 Jieba 插件: - GitHub 上的第三方项目或镜像仓库(例如:[elasticsearch-analysis-jieba](https://github.com/chenryn/elasticsearch-analysis-jieba)) ##### 安装 1. 下载适用于 Elasticsearch 8.4.0 的 Jieba 插件包(如 `elasticsearch-analysis-jieba-8.4.0.jar`)。 2. 将插件包放入 Elasticsearch 的 `plugins` 目录: ```bash cp elasticsearch-analysis-jieba-8.4.0.jar /usr/share/elasticsearch/plugins/ ``` 3. 修改 `elasticsearch.yml` 配置文件,添加 Jieba 分词器的配置: ```yaml index: analysis: analyzer: jieba: type: custom tokenizer: jieba_tokenizer ``` 4. 重启 Elasticsearch 服务: ```bash systemctl restart elasticsearch ``` 5. 验证插件是否安装成功: ```bash curl http://localhost:9200/_cat/plugins ``` #### 使用 Docker 安装分词器插件 如果你使用 Docker 部署 Elasticsearch,可以在运行容器时挂载插件目录,并将分词器插件放入该目录。 1. 创建插件目录并放入插件包: ```bash mkdir -p /docker_config/plugins cp elasticsearch-analysis-ik-8.4.0.zip /docker_config/plugins/ ``` 2. 启动 Elasticsearch 容器时挂载插件目录: ```bash sudo docker run --name elasticsearch \ -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \ -v /docker_config/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /docker_config/elasticsearch/data:/usr/share/elasticsearch/data \ -v /docker_config/plugins:/usr/share/elasticsearch/plugins \ -d docker.elastic.co/elasticsearch/elasticsearch:8.4.0 ``` 3. 等待容器启动后,验证插件是否安装成功: ```bash curl http://localhost:9200/_cat/plugins ``` #### 配置和使用分词器 安装完成后,可以在索引创建时指定分词器: ```json PUT /my_index { "settings": { "analysis": { "analyzer": { "my_ik_analyzer": { "type": "custom", "tokenizer": "ik_max_word" } } } }, "mappings": { "properties": { "content": { "type": "text", "analyzer": "my_ik_analyzer" } } } } ``` #### 示例:测试 IK 分词器 ```json POST /_analyze { "analyzer": "ik_max_word", "text": "这是一个测试句子" } ``` 返回结果: ```json { "tokens": [ { "token": "这是", "start_offset": 0, "end_offset": 2, "type": "CN_WORD", "position": 0 }, { "token": "一个", "start_offset": 2, "end_offset": 4, "type": "CN_WORD", "position": 1 }, { "token": "测试", "start_offset": 4, "end_offset": 6, "type": "CN_WORD", "position": 2 }, { "token": "句子", "start_offset": 6, "end_offset": 8, "type": "CN_WORD", "position": 3 } ] } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值