`
shuminghuang
  • 浏览: 52407 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

通过关闭ElasticSearch的索引使索引配置变更立即生效

阅读更多

问题

在处理elasticsearch的时候,通常需要不断地调整索引的配置,以期达到期望的效果。最近在试验各种analyzer的效果的时候就碰到一个问题:修改索引配置后,并不能立即生效。后来才发现需要先关闭索引,然后再打开才能生效。

 

过程

下面是我的过程:

创建索引:

 

curl -XPUT http://localhost:9200/analyzetest/ -d '
{
   "settings":{
      "analysis":{
         "analyzer":{
            "testpatternanalyzer":{
               "type":"pattern",
               "pattern":"\\s+"
            }
         }
      }
   }
}
'

 

 

测试分析器效果:

 

curl -Xpost http://localhost:9200/analyzetest/_analyze?analyzer=testpatternanalyzer -d '
hello elasticsearch
'

 效果达成,试验一个自定义的分析器,该分析器采用nGram的tokenizer:

更新索引配置:

curl -XPUT http://localhost:9200/analyzetest/_settings -d '
{
   "analysis":{
      "analyzer":{
         "acompoundenglish":{
            "type":"custom",
            "tokenizer":"my_ngram_tokenizer",
            "filter":[
               "my_ngram_filter"
            ]
         }
      },
      "tokenizer":{
         "my_ngram_tokenizer":{
            "type":"nGram",
            "min_gram":1,
            "max_gram":3
         }
      },
      "filter":{
         "my_ngram_filter":{
            "type":"nGram",
            "min_gram":1,
            "max_gram":3
         }
      }
   }
}
'

 返回:

{
    "ok": true
}

 

测试效果:

 

curl -Xpost http://localhost:9200/analyzetest/_analyze?analyzer=compoundenglish -d '
english
'

 结果返回的token只有一个:“english”。这明显不是nGram应该达到的效果。反复试验过几次均不见效果。

通过

curl -Xget http://localhost:9200/analyzetest/_settings

 发现第二次设置的索引配置根本没有出现。可是更新配置的时候明名返回成功的。

原来(https://groups.google.com/forum/#!msg/elasticsearch/dVPq9GAh8-g/Gs3Lg7Zjt1QJ)需要先关闭索引后才能生效:

kimchy 写道
It might just be the number of replicas setting, where it should handle things better in case of a closed index. All other settings should work. Open an issue for the number of replica settings update problem on a closed index.

通过 

curl -XPOST http://localhost:9200/analyzetest/_close
curl -XPOST http://localhost:9200/analyzetest/_open

发现更新过的配置生效了,分析器也返回了期望的效果。

 

 

 

0
0
分享到:
评论

相关推荐

    Elasticsearch索引和查询性能调优.pdf

    例如,将`vm.max_map_count`设置为655360,并通过`sysctl -p`使改动立即生效。 索引性能调优包括合理设置索引分片数和副本数。索引分片数应为节点数的整数倍,初始导入时副本数设为0,生产环境中建议设置为1。单...

    Linux中间件加密之Elasticsearch和kibana配置雨用户密码验证

    修改配置后,需要重启Elasticsearch服务以使新的配置生效。可以使用`docker restart es`命令来重启容器内的服务。 接着,我们将配置Elasticsearch的密码: 1. **检查X-Pack安装**: 进入Elasticsearch容器的`/...

    elasticsearch7.17.10版本分词器插件安装包

    - **重启Elasticsearch**:完成上述步骤后,重启Elasticsearch服务以使更改生效。 5. **验证安装** 使用Elasticsearch的命令行工具或通过HTTP API,检查插件是否成功安装。运行以下命令: ``` curl -X GET '...

    elasticsearch-jieba-plugin 8.8.2.zip

    在使用`elasticsearch-jieba-plugin`时,你需要配置Elasticsearch的索引设置,指定使用jieba分词器。在创建索引或者更新现有索引的映射(mapping)时,可以通过设置`analyzer`字段来指定分词器。例如: ```json PUT...

    elasticsearch1.5.2带head插件

    3. 安装完成后,重启 Elasticsearch 服务以使插件生效。 **使用 Head 插件** 1. 在浏览器中输入 `http://localhost:9200/_plugin/head/`,你将看到 Head 插件的界面。 2. 通过 Head 插件,你可以监控集群的健康...

    Elasticsearch head插件

    安装完成后,无需重启 Elasticsearch 服务,Head 插件就已经生效。只需在浏览器中输入 `http://localhost:9200/_plugin/head/`(假设 Elasticsearch 运行在本地且默认端口为 9200)即可访问到 Head 插件的界面。 ##...

    ranger-2.1.0-elasticsearch-plugin.tar.gz

    4. 启动:重启Elasticsearch和Ranger服务,确保插件生效。 配置Ranger Elasticsearch插件涉及的主要部分有: - 在Ranger Admin界面创建新的服务定义,选择Elasticsearch类型,并配置相关参数,如Elasticsearch节点...

    elasticsearch-analysis-ik-8.11.0

    3. 启动:重启Elasticsearch服务以使配置生效。 4. 测试:通过Elasticsearch的API进行测试,验证分词效果,如使用`GET /_analyze`接口。 除了基本功能,IK分词插件还提供了丰富的扩展性,用户可以通过编写自定义...

    elasticsearch7.17.11版本分词器插件安装包

    Elasticsearch(简称ES)是一款基于Lucene的分布式、RESTful搜索引擎,广泛应用于日志收集、数据分析等领域,是ELK(Elasticsearch、Logstash、Kibana)堆栈的重要组成部分。在处理中文数据时,合理的分词对于提升...

    elasticsearch-analysis-ik 7.10.0 分词器

    **Elasticsearch Analysis IK 7.10.0 分词器详解** Elasticsearch 分词器是搜索引擎核心组件之一,负责将输入的文本拆分成可搜索的独立单元——词语。在中文环境中,这个过程尤为重要,因为中文句子由多个汉字组成...

    elasticsearch-analysis-pinyin-5.6.8.zip

    3. 重启Elasticsearch服务以使插件生效。 4. 配置索引模板或索引设置,指定使用`pinyin`分析器。 在实际应用中,用户还需要根据自己的需求配置Elasticsearch的索引映射,将需要进行拼音分析的字段指定为使用`...

    elasticsearch 简体、繁体转化插件

    总结来说,"elasticsearch-analysis-stconvert"插件是Elasticsearch处理简体和繁体中文的关键工具,它通过分析器的定制,使得简体用户无需额外操作就能搜索到包含繁体内容的信息,极大地提升了用户体验。对于那些...

    Elasticsearch安裝與ElasticSearch-head安裝和配置

    ### Elasticsearch 安装与 ElasticSearch-Head 安装配置详解 #### 一、Elasticsearch 环境准备 **1. Java 环境配置** - **下载 JDK**:根据官方要求,Elasticsearch 5.* 版本及以上需要 JDK 1.8。可从官方链接...

    elasticsearch-analysis-ik-7.12.1

    3. **重启 Elasticsearch**:重启服务以使插件生效。 4. **配置**:在 Elasticsearch 的配置文件 `elasticsearch.yml` 中添加或修改分析器配置。 例如: ```yaml analysis: analyzer: my_analyzer: # 自定义分析...

    elasticsearch数据库下载、配置、使用案例

    修改完配置文件后,需要重启 Elasticsearch 服务以使配置生效。 #### 四、使用案例 下面通过一系列具体的步骤演示如何使用 Elasticsearch: 1. **启动 Elasticsearch**: 在 Elasticsearch 的安装目录下,运行...

    elasticsearch-analysis-ik-7.16.3.zip

    1. 配置分词器:在Elasticsearch的索引模板或映射设置中,添加IK分词器配置,例如: ```json { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "ik_max_word", "filter": [...

    elasticsearch-analysis-ik 7.17.16 分词器

    在Elasticsearch中使用IK分析器,需要在索引模板或索引设置中进行配置。例如: ```json PUT /my_index { "settings": { "analysis": { "analyzer": { "my_analyzer": { "type": "ik_max_word", "dict": ...

    elasticsearch7.17.14版本分词器插件安装包

    6. **验证安装**: 通过Elasticsearch的API检查分词器是否生效。例如,使用`GET /_analyze` API测试分析器: ``` { "analyzer": "my_analyzer", "text": "这是一个测试" } ``` 如果返回的结果中,"tokens"字段...

    elasticsearch7.17.8版本分词器插件安装包

    2. 重启Elasticsearch服务以使配置生效。 **六、测试与使用** 1. 创建索引时,指定使用自定义的分词器。例如: ```json { "settings": { "analysis": { "analyzer": { "default": { "type": "my_ik_...

Global site tag (gtag.js) - Google Analytics