Elasticsearch:二进制数据类型 – binary field

 二进制(binary)类型接受二进制值作为 Base64 编码字符串。 该字段默认不存储且不可搜索。Base64 编码的二进制值不得嵌入换行符 \n

这听起来像是,将二进制对象存储在 Elasticsearch 中的单个字段中



1.  PUT my-index-000001
2.  {
3.    "mappings": {
4.      "properties": {
5.        "name": {
6.          "type": "text"
7.        },
8.        "blob": {
9.          "type": "binary"
10.        }
11.      }
12.    }
13.  }


二进制字段的参数

二进制字段接受以下参数:

条目 描述
doc_values 该字段是否应该以列跨度的方式存储在磁盘上,以便以后可以用于排序、聚合或脚本编写? 接受 true 或 false。默认值为 false
store 字段值是否应与 _source 字段分开存储和检索。 接受 true 或 false(默认)。

如果关闭倒排索引doc_values,二进制字段类型与 keyword 字段类型相同,那么它的用途是什么?

Elasticsearch 的一个典型用例是用作元数据搜索引擎,文档中至少有一个字段指向另一个存储库中的对象,例如图像、电影和歌曲的链接,而其余字段用于 找到该对象(歌曲名称、图像描述、导演)。 要获取对象本身,你首先需要在 Elasticsearch 中进行搜索,然后在其他位置运行 GET 请求。 使用二进制字段类型,我们可以将对象直接存储在 Elasticsearch 的字段中,现在对 Elasticsearch 的查询将返回二进制对象,无需在其他任何地方运行第二个请求。

如果你想将数据存储在一个地方并且你关心尽可能快地检索信息,这非常好。

注意:二进制对象可能非常大,会增加 Elasticsearch 中的存储成本。

潜在有用的用例

几个字节或几千字节大小的文件,甚至可能是几兆字节,例如图像(png、jpg)、短 mp3、静态 HTML 页面、其他文档(txt/pdf/doc)。 这些也应该都是静态文件,不会随着时间的推移过于频繁地更改。

要避免的用例

大文件,如视频、无损歌曲、超大图像等,此列表应包括任何经常更新的文件,如 Google Docs/Microsoft Word 中的动态文档或协作或其他方式创建的任何其他文件。 (通常很难定义,这取决于用例,根据经验,如果文件每天/每周/每月更改 100 次,则可能需要避免)。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYBFnIOa' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片