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

在Elasticsearch中为具有新类型的现有索引创建映射

孙永嘉
2023-03-14
问题内容

我在elasticsearch网站上找到了一篇文章,描述了如何“在不停机的情况下重新编制索引”,但是每次引入需要自定义映射的新元素时,这实际上是不可接受的(http://www.elasticsearch.org/blog/changing-
零停机时间映射/

有谁知道为什么我不能为Elasticsearch中的现有索引创建映射,而是为新类型创建映射?该类型尚不存在,为什么不呢?也许我想念一些东西,有可能吗?如果是这样,那将如何实现?

谢谢,弗拉基米尔


问题答案:

这是一个在索引中创建两个类型映射的简单示例(一个接一个)

我使用 i1 作为索引,使用 t1t2 作为类型,

  1. 创建索引

    curl -XPUT "http://localhost:9200/i1"
    
  2. 创建类型1


        curl -XPUT "http://localhost:9200/i1/t1/_mapping" -d
    {
       "t1": {
          "properties": {
             "field1": {
                "type": "string"
             },
             "field2": {
                "type": "string"
             }
          }
       }
    }'
  1. 创建类型2
        curl -XPUT "localhost:9200/i1/t2/_mapping" -d'
    {
       "t2": {
          "properties": {
             "field3": {
                "type": "string"
             },
             "field4": {
                "type": "string"
             }
          }
       }
    }'

现在查看mapping(curl -XGET "http://localhost:9200/i1/_mapping"),看来它正在工作。

希望这可以帮助!!谢谢



 类似资料:
  • 我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射 现在我收到了这个错误信息 {“error”:{“root_cause”

  • 我正在设置Filebeat将日志发送到Elasticsearch。这是我的: 我有这个文件: 我期待着这份日志被发送到Elasticsearch。Elasticsearch在localhost的Docker容器中运行,地址为9200。 当我运行filebeat(Docker)时,Elasticsearch中不会创建索引。所以,在基巴纳,我没有看到任何数据。 为什么?Filebeat不应该自动创建索

  • 问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点

  • 问题内容: 我想要对Elasticsearch中已存在的索引进行以下设置和映射设置: 我试图添加以下两行代码: 但这是结果: 任何人?非常感谢, 斯汀 这似乎可行: 问题答案: 如果在发送更改后查看设置,您会发现分析仪不存在。实际上,您不能在实时索引上更改设置的“分析”部分。最好使用所需的设置来创建它,否则您可以将其关闭: 关闭索引后,您可以发送新设置。之后,您可以重新打开索引: 关闭索引后,它不

  • 我正在阅读文档,碰巧阅读了多个索引的创建和在多个索引上搜索的能力,以及在Elasticsearch中搜索特定搜索的可能性。 例如,我有两个索引,如释放区和工作区。我可以通过给http://localhost:9200/_search?pretty=true搜索,这将在所有索引中搜索 我可以专门搜索http://localhost:9200/releasedArea,工作区/\u搜索?漂亮=真。 因

  • 我想为我的索引更新elasticsearch中的默认映射。但是所有的文档都指出我们必须为更新映射提供类型。问题是我有很多索引类型,它们是动态创建的,就像新类型的文档出现时一样。所以最好的处理方法是默认映射类型。因为我不必为每个类型定义映射。但现在我无法更新我的索引默认映射。如果可能的话,请告诉我?