| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Elasticsearch:constant keyword 数据类型 -> 正文阅读 |
|
[大数据]Elasticsearch:constant keyword 数据类型 |
?Constant keyword 是 keyword 字段的特例,用于索引中所有文档具有相同值的情况。比如,
constant_keyword 支持与 keyword 字段相同的查询和聚合,但利用所有文档每个索引具有相同值的事实来更有效地执行查询。 允许提交没有字段值或值等于映射中配置的值的文档。 以下两个索引请求是等效的:
如果我们进行如下的查询:
上面查询显示的结果是:
从上面,我们可以看到尽管第二个文档里没有明显的字段 level,但是它还是被搜索出来了。 如果我们在写入文档时填写和 mapping 中定义不一样的值时,它就会报错,比如:
在上面的 level 中,我们给它不同的值 info 而不是 debug,那么我们可以看到如下的错误信息:
如果没有值在映射设置,该字段将基于包含在所述第一索引文档中的值自动进行配置。虽然这种行为可以方便,请注意,这意味着一个有毒文件可能会导致拒绝所有其他文件,如果它有一个错误的值。比如:
在上面,我们定义了 level 的类型,但是我们没有定义它的值,那么当我们使用如下的方法写入两个文件时:
因为第一个文档里定义的 level 的值为 info,那么之后所有的文档将视 info 为索引 logs-info 字段 level 的默认值。我们可以做如下的查询:
我们可以同时查询到上面的两个文档。 在没有提供任何的值之前(或者通过映射或文档),查询的字段将不会匹配任何文件。这包括 exists 查询。 一旦这个字段的值被确定后,之后就不可以更改。 很多人想,这个字段到底有啥用途呢?就像之前提到的针对 constant_keyword 字段的查询非常高效。这种情况适用于我们做如下的查询:
在我们已经创建 logs-debug 及 logs-info 的索引的情况下。 constant_keyword 字段被广泛使用于 Elastic datastream 的命名方案中。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/18 21:11:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |