当前位置: 首页 > 面试题库 >

在ElasticSearch设置中更新分析器

丁弘新
2023-03-14
问题内容

我正在使用Sense(Chrome插件),并且已经成功设置了分析仪,并且可以正常工作。如果我在设置上发出GET(/ media /
_settings),则返回以下内容。

{
   "media": {
      "settings": {
         "index": {
            "creation_date": "1424971612982",
            "analysis": {
               "analyzer": {
                  "folding": {
                     "filter": [
                        "lowercase",
                        "asciifolding"
                     ],
                     "tokenizer": "standard"
                  }
               }
            },
            "number_of_shards": "5",
            "uuid": "ks98Z6YCQzKj-ng0hU7U4w",
            "version": {
               "created": "1040499"
            },
            "number_of_replicas": "1"
         }
      }
   }
}

我正在尝试通过执行以下操作来更新它:

关闭索引

发出此PUT命令(删除过滤器)

PUT /media/_settings
{
  "settings": {
    "analysis": {
      "analyzer": {
        "folding": {
          "tokenizer": "standard",
          "filter":  [ "lowercase" ]
        }
      }
    }
  }
}

打开索引

但是,当设置恢复时,不会删除过滤器。创建分析器后,是否可以不对其进行更新?


问题答案:

简短答案:不可以。

更长的答案。从ES文档:

“尽管您可以向索引添加新类型或为类型添加新字段,但是您不能添加新的分析器或对现有字段进行更改。如果这样做,那么已经被索引的数据将是不正确的而且您的搜索将无法按预期进行。”

最好的方法是创建一个新索引并移动数据。有些客户端有帮助您完成此任务的助手,但这不是标准Java客户端的一部分。

http://www.elasticsearch.org/guide/zh-
CN/elasticsearch/guide/current/reindex.html



 类似资料:
  • 问题内容: 我正在使用ElasticSearch 1.5.2,希望具有以下设置: 我应该在哪里添加它们?我的意思是在创建索引之前还是之后? 通过在线搜索,我发现了一些类似的方法 但是我有2个问题, 我收到编译错误:ImmutableSettings.builder类型的方法loadFromSource不适用于参数XContentBuilder 另外,我不知道如何将我的设置转换为这种格式。在哪里可以

  • 问题内容: 是否可以使用Tire更新elasticsearch设置?我有这个curl命令,我想自动运行。 该值可通过轮胎获得,但我不确定如何应用。 问题答案: 可能,但是很丑:) 在将来的版本中会变得更好…

  • 我想为Elasticsearch中的任何索引设置一个全局分析器。 这些行被添加到elasticsearch.yaml中: 重新启动Elasticsearch后,这些行如所示http://localhost:9200/_nodes/settings 然后我用url测试http://localhost:9200/_analyze?text=时间 它显示iAnalyzer已启用。然而,当谈到http:/

  • 问题内容: 我正在尝试创建一个测试分析器,以对Elastic Search的分析进行实验。我创建了一个索引“ mytest”,该索引可用且可搜索,但是当我尝试创建自定义分析器时,出现以下错误 现在,我不确定更新设置的限制,但是在文档中找不到任何内容。我可以在创建索引时创建分析,但是更新不起作用。 使用以下来源创建分析器 有任何想法吗 ? 问题答案: 当索引处于打开状态时,您无法更新索引的设置。您需

  • 问题内容: 我有来自Logstash的数据,这些数据正在以过度的方式进行分析。从本质上讲,该领域将被分解成, 和。我知道我可以更改现有数据的映射和重新索引,但是如何更改默认分析器(在ElasticSearch或LogStash中)以避免将来的数据出现此问题? 具体解决方案:在我第一次将数据发送到新集群之前,我为该类型创建了一个映射。 IRC解决方案:创建索引模板 问题答案: 如您所知,当未明确指定

  • 问题内容: 我尝试配置ElasticSearch: 这是我执行“ http://mydomain.com:9200/test/_analyze?analyzer=autocomplete&text=rih ” 时的错误 有什么问题 ?谢谢 问题答案: 该错误显示“无法找到分析器[自动完成]”。在Elasticsearch中,默认情况下您可以使用多个分析器。尽管您可以创建一个自定义分析器,但我不知道