elasticsearch - 尝试为定义的 Elasticsearch 模板中缺少的字段建立索引
问题描述
我找不到有关以下问题的任何文档:
我们正在为我们要索引到 Elasticsearch 的所有字段创建一个模板文件。问题是关于模板中未定义的字段:
- 它们作为索引的默认 Elastic 值是多少?
- 索引这些字段有什么限制(如果有的话)?
- 我试图索引一个字段,它的值是 JSON 列表,但出现异常:“无法在 1:311 的 START_OBJECT 上获取文本”,这是什么意思?
解决方案
字符串字段使用带有标准分析器的文本字段和带有关键字数据类型的子字段 .keyword 进行索引,其中选项 ignore_above 设置为 256。尝试将日期字段解析为 iso 8601 格式 - 这个
yyyy-MM-dd HH:mm:ss
。long 是数字的默认值,double 是小数的默认值。您可以使用动态模板修改此默认行为。例如,如果我们想将所有整数字段映射为 short 而不是 long,并将所有字符串字段映射为关键字,我们可以使用以下模板:PUT my_index { "mappings": { "dynamic_templates": [ { "integers": { "match_mapping_type": "long", "mapping": { "type": "short" } } }, { "strings": { " match_mapping_type": "string", "mapping": { "type": "keyword", "ignore_above" :256 } } } } }
模板中未定义的索引字段没有限制
- 这个错误意味着 es 语法的 json 有错误,你能分享这个 json 吗?
推荐阅读
- java - 给定 2 LocalDateTime 基于天或天/小时生成过滤器
- ios - 无法在当前上下文中推断闭包类型
- typescript - Hapi Typescript - 控制器未定义“this”
- r - 转换为正确的绘图格式
- c - 与我自己的源文件一起编译 SDL 2
- class - 当类位于不同的“命名空间/包”中时的 Perl6 类继承
- python - 从 Mayavi 管道中提取数据——特别是点定义表面的坐标
- tensorflow - Keras VGG16 preprocess_input 模式
- azure-service-fabric - Service Fabric 启动-调试失败
- elasticsearch - elasticsearch 与聚合键及其嵌套聚合键的无痛组合