ElasticSearch - 索引模板和索引模式有什么区别

2024-04-19

我在这里阅读了对我的问题的解释:

https://discuss.elastic.co/t/whats-the-differece- Between-index-pattern-and-index-template/54948 https://discuss.elastic.co/t/whats-the-differece-between-index-pattern-and-index-template/54948

但是,我仍然不明白其中的区别。定义索引PATTERN的时候,是不是完全不影响索引的创建呢?另外,如果我创建了一个索引,但它没有相应的索引模式,会发生什么情况?如何查看用于索引模式的映射,以便了解如何使用映射 API 来更新它?

另外,文档说您可以通过单击“设置”然后单击“索引”选项卡来管理索引模式。我正在查看 Kibana,但没有看到任何设置选项卡。我可以通过管理选项卡查看索引模式,但我没有看到任何设置选项卡


An 索引模板 https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html是一项 ES 功能,用于在名称模式匹配时触发新索引的创建。例如,假设我们创建以下索引模板:

PUT _template/template_1
{
  "index_patterns": ["foo*"],
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    ...
  }
}

正如您所看到的,一旦我们想要在名为 (e.g.) 的索引中对文档建立索引foo-44并且该索引不存在,那么 ES 将使用该模板(设置 + 映射)来创建foo-44自动索引。

您可以随时更新索引模板,只需像上面那样放置新的设置/映射定义即可。

An 指数模式 https://www.elastic.co/guide/en/kibana/current/index-patterns.html(不要与index-patterns您在上面看到的属性(这是两个完全不同的东西)是 Kibana 的一个功能,用于告诉 Kibana 索引的组成部分(所有字段、它们的类型等)。如果不创建索引模式,Kibana 就不会发生任何事情,您可以在Management > Index Patterns.

在 ES 中创建索引不会在 Kibana 中创建任何索引模式。同样,在 Kibana 中创建索引模式不会在 ES 中创建任何索引。

Kibana 需要索引模式的原因是它需要存储索引映射中可用的不同类型的信息。例如,假设您使用以下映射创建一个索引:

PUT my_index
{
  "mappings": {
    "doc": {
      "properties": {
        "timestamp": {
          "type": "date"
        },
        "name": {
          "type": "text"
        }
      }
    }
  }
}

那么您将在 Kibana 中创建的相应索引模式将具有以下内容:

GET .kibana/doc/index-pattern:16a98050-a53f-11e8-82ab-af0d48c6ddd8
{
  "type": "index-pattern",
  "updated_at": "2018-08-21T12:38:22.509Z",
  "index-pattern": {
    "title": "my_index*",
    "timeFieldName": "timestamp",
    "fields": """[{"name":"_id","type":"string","count":0,"scripted":false,"searchable":true,"aggregatable":true,"readFromDocValues":false},{"name":"_index","type":"string","count":0,"scripted":false,"searchable":true,"aggregatable":true,"readFromDocValues":false},{"name":"_score","type":"number","count":0,"scripted":false,"searchable":false,"aggregatable":false,"readFromDocValues":false},{"name":"_source","type":"_source","count":0,"scripted":false,"searchable":false,"aggregatable":false,"readFromDocValues":false},{"name":"_type","type":"string","count":0,"scripted":false,"searchable":true,"aggregatable":true,"readFromDocValues":false},{"name":"name","type":"string","count":0,"scripted":false,"searchable":true,"aggregatable":false,"readFromDocValues":false},{"name":"timestamp","type":"date","count":0,"scripted":false,"searchable":true,"aggregatable":true,"readFromDocValues":true}]"""
  }
}

如您所见,Kibana 还存储时间戳字段、索引模式的名称(可以跨越多个索引)。它还存储您定义的每个字段的各种属性,例如name字段中,index-pattern 包含 Kibana 需要了解的以下信息:

  {
    "name": "name",
    "type": "string",
    "count": 0,
    "scripted": false,
    "searchable": true,
    "aggregatable": false,
    "readFromDocValues": false
  },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch - 索引模板和索引模式有什么区别 的相关文章

随机推荐

  • 在 Android Studio 中调试应用程序时如何“单步执行”或“单步执行”代码?

    我正在尝试遵循这个使用 Android Studio 进行调试 http developer android com tools debugging debugging studio html 如何单步执行或单步跳过代码 在调试器的变量选项
  • 测试期间重置Laravel数据库中的记录,但不重置数据库本身

    我现在正在测试我的 Laravel 应用程序 并面临下一个问题 我的项目是从无框架 PHP 项目迁移而来的 该项目已经拥有自己的数据库 因此我没有对大多数数据库数据进行迁移 在测试期间我需要刷新我的数据库 但就我现在而言 当我使用use R
  • Windows 中 CMake 的默认生成器是什么?

    在一台 PC 上运行 CMake 时 CMake 默认生成 NMake 文件 另一方面 它生成一个 Visual Studio 项目 我知道我可以通过添加来覆盖默认值 G NMake Makefiles 到我的 CMake 语句的末尾 但我
  • android autocompletetextview 应仅在下拉列表中显示相关选项

    我在代码中使用 AutoCompleteTextView 并使用 SimpleCursorAdapter 从数据库加载列表 AutoCompleteTextView cocktailIngredientView AutoCompleteTe
  • 应用程序更新时的 NSUserDefaults 行为

    我的 iOS 应用程序中有一个方法 可以在检测到我的服务器具有适用于我的应用程序的更高版本 新的 ipa 版本 时更新应用程序 如果用户想要下载它 该应用程序会在 iPad 上自行更新 问题是 当应用程序第一次打开新版本时 我想更新数据库中
  • Amazon Elastic Beanstalk npm 找不到 package.json

    我对亚马逊网络服务非常陌生 我正在尝试在他们的弹性beanstalk上设置一个node js应用程序 我设置了实例并上传 部署了站点 但是虽然运行状况 正常 但 node js 日志显示此情况重复了大约 30 次 npm ERR enoen
  • 如何使用 Netty 发送对象?

    如何通过Netty从服务器端发送bean并在客户端接收该bean 当我发送简单的整数消息 inputstream 时 它工作成功 但我需要发送 bean 如果您在客户端和服务器端使用 Netty 那么您可以使用 Netty对象解码器 htt
  • 以编程方式关闭 WP7 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Windows Phone 7 关闭应用程序 https stackoverflow com questions 3659195 windows phone 7 close application 如
  • 表达忽略视图目录

    我已经设置了一个配置文件来存储我的 Express 应用程序的应用程序路径 cookie 秘密等设置 问题是它似乎忽略了我的视图路径目录设置 配置 js exports server port 3000 cookie secret path
  • 使用类的 __new__ 方法作为工厂:__init__ 被调用两次

    我在 python 中遇到了一个奇怪的错误 其中使用 new 将类的方法作为工厂会导致 init 实例化类的方法被调用两次 这个想法最初是为了使用 new 母类的方法根据传递的参数返回其子类之一的特定实例 而无需在类外部声明工厂函数 我知道
  • 需要类或命名空间;语法正确且正确

    在 dualstk h 中 ifndef 32 dualstk h define 32 dualstk h include
  • AWS 检查状态机/Step Functions 并发运行

    我在处理状态机 步骤函数 的并发运行时遇到很多问题 该状态机中确实有胶水作业任务 状态机由 Lambda 启动 并由 FIFO SQS 队列触发 lambda 获取消息 检查正在运行的状态机实例数量 如果该数量低于 GlueJob 并发运行
  • .htaccess 将一个文件夹中的所有文件重定向到另一个文件夹中的完全相同的文件

    我们只需将名为 音乐 的目录中的每个页面移动到名为 信息 的目录 这是唯一的更改 有很多指向音乐页面的链接 我们不想全部破坏 我不擅长重写条件 基本上 我想做的就是当用户输入 music index php 或 music life myp
  • 复合属性

    有没有办法在 C 中制作复合属性以在编译时提供等效的元数据 例如 改变 ClassInterface ClassInterfaceType AutoDual ProgId MyProgId MyMefExport MyProgId publ
  • 有没有办法使用 getUserMedia 减少延迟?

    在尝试减少视频延迟的同时WebRTC通信时 我测量了视频捕获和视频显示之间的延迟 为了防止测量 WebRTC 涉及的延迟 我只是使用getUserMedia和一个 HTMLvideo显示流 我通过每帧显示时间戳来做到这一点 使用reques
  • 编译器错误:对调用的引用不明确

    Case 1 static void call Integer i System out println hi i static void call int i System out println hello i public stati
  • 更改 ToolStripMenuItem 的大小

    我正在自定义绘制一个菜单项MenuStrip 我遇到的问题是菜单项坚持根据文本调整自身大小 这不是我想要的 没有文本 我可以设置AutoSize设置为 false 并显式指定大小 但包含的菜单 ToolStripDropDown 仍然根据文
  • $_POST、$_GET 和 $_REQUEST 为空

    SOLVED 我省略了输入字段中的名称属性 我有一个简单的 html php 表单 我提交了 POST 始终为空 如果我尝试 get 那么 GET 总是空的 REQUEST 和 php input 相同 我没有得到任何回报 有很多关于这个主
  • AVCaptureVideoPreviewLayer 和从相机位置预览

    我正在开发一个允许用户拍照的应用程序 我已经开始使用AVCam https developer apple com library ios samplecode AVCam Introduction Intro html苹果提供了 但我实际
  • ElasticSearch - 索引模板和索引模式有什么区别

    我在这里阅读了对我的问题的解释 https discuss elastic co t whats the differece Between index pattern and index template 54948 https disc