【Elasticsearch教程6】Mapping字段类型之二进制binary

这篇具有很好参考价值的文章主要介绍了【Elasticsearch教程6】Mapping字段类型之二进制binary。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

binary类型接收一个Base64编码的字符串,默认情况二进制字段不能被存储和检索

一、binary不能被存储?

binary不能被存储?
这个意思不是说没有存储在ES,而是说mapping中该字段的store参数默认是false。
默认情况下字段的值都会存储到_source里,binary类型的值也是如此。
如果store属性设置为true,那就会在_source的同级外面单独存下它原始值。
另外binary的doc_values属性也会默认为false。
对mapping的参数还可以参考我之前的博客es mapping参数详解

二、binary不能被检索?

binary的值虽然也存储到_source里了,但是并没有根据binary的值进行倒排索引,所以不能根据binary的值来查询文档,一般我们也没有场景来要用Base64乱码来查询文档的。

三、验证binary字段

创建一index,其mapping中name是text类型,blob是binary类型。

PUT pigg_test
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "blob": {
        "type": "binary"
      }
    }
  }
}

插入一个测试文档

PUT pigg_test/_doc/1
{
  "name": "Some binary blob",
  "blob": "U29tZSBiaW5hcnkgYmxvYg==" 
}

1 根据ID查询文档

GET pigg_test/_doc/1

结果显示binary字段确实存储到_source中了

{
  "_index" : "pigg_test",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "Some binary blob",
    "blob" : "U29tZSBiaW5hcnkgYmxvYg=="
  }
}

2 在binary字段上做检索

GET pigg_test/_search
{
  "query": {
    "term": {
      "blob": {
        "value": "U29tZSBiaW5hcnkgYmxvYg=="
      }
    }
  }
}

它会返回如下错误,说明binary字段不支持搜索

"reason" : "failed to create query: Binary fields do not support searching"

四、binary的使用场景

其实在ES中,能用到binary的场景很少,如果这二进制的值大小比较大,存ES中,会对ES的查询性能有很多的影响。之前有个项目把用户的头像信息转成Base64编码,然后存ES中,后来ES的查询性能很差,最后才申请了单独的文件服务器存放头像图片。ES虽然也算数据库吧,但是它很擅长的是检索信息,在大数据框架中,它可能会和HBase等数据库结合,ES仅仅存一些查询才用到的字段,仅仅负责检索的功能,把存放海量数据的责任交给更加适合的数据库。文章来源地址https://www.toymoban.com/news/detail-448416.html

到了这里,关于【Elasticsearch教程6】Mapping字段类型之二进制binary的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch:我们如何演化处理二进制文档格式

    作者:来自 Elastic Sean Story 从二进制文件中提取内容是一个常见的用例。一些 PDF 文件可能非常庞大 — 考虑到几 GB 甚至更多。Elastic 在处理此类文档方面已经取得了长足的进步,今天,我们很高兴地介绍我们的新工具 —— 数据提取服务: 发布于 8.9 版本, 截至目前,没有报

    2024年04月10日
    浏览(33)
  • 【Golang】IEEE754标准二进制字符串转为浮点类型

      IEEE 754是一种标准,用于表示和执行浮点数运算的方法。在这个标准中,单精度浮点数使用32位二进制表示,分为三个部分:符号位、指数位和尾数位。 符号位(s) 用一个位来表示数的正负,0表示正数,1表示负数。 指数位(e) 用8位表示指数。对于单精度浮点数,指数位是以

    2024年01月21日
    浏览(39)
  • CMake教程系列-02-使用cmake代码生成二进制

    参考:Cmake安装以及升级(Ubuntu) Win10安装文件: 创建的目录以及代码如下: CMakeLists.txt sample.cpp 目录结构如下:注意多创建一个build目录存放中间文件和最终二进制文件 点击“Configure 我的的vs是2019,在Configure中选择了 点击“Configure”右边的“Generate”。 点击“Generate”右边

    2024年02月04日
    浏览(45)
  • Windows环境下Node.js二进制版安装教程

    新版的 Node.js 已自带 npm ,就在 Node.js 下载完成解压后的文件内,的 node_modules 包中。 npm 的作用:是对 Node.js 依赖的包进行管理,类似 maven 。 下载地址 https://nodejs.org/en 下载binary包 解压后 NODE_PATH , node.exe 所在路径。 添加 PATH CMD 命令行中用 npm -v 和 node -v 测试一下是否按照成

    2024年02月14日
    浏览(31)
  • Linux教程——Linux软件包(源码包和二进制包)

    Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。 GPL,全称 General Public License,中文名称“通用性公开许可证”,简单理解 GPL 就是一个保护软件自由的一个协议,经 GP

    2024年02月11日
    浏览(34)
  • 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    目录 1、Mapping字段映射概述 2、Mapping字段常用类型 3、映射中对时间类型详解 1)采取自动映射器来映射 2)手工映射提前指定日期类型 4、ES的keyword的属性ignore_above 5、Mapping映射的查看和创建 1)查看mapping信息:GET 索引名/_mapping 2)创建映射:PUT /索引名 3) 查看所有索引映

    2024年01月20日
    浏览(51)
  • 【十进制 转 二进制】【二进制 转 十进制】10进制 VS 2进制【清华大学考研机试题】

    原题链接 本题我们先需要知道 十进制 如何转 二进制 二进制 如何转 十进制 十进制 如何转 二进制: 十进制转成二进制 例如 173 转成 二进制 就把173 短除法 除到0 然后 得到的余数, 从下往上写 二进制 转成 十进制 利用如图方法,把二进制 转成 十进制 本题是高精度,如何

    2023年04月26日
    浏览(35)
  • 将数据转二进制流文件,用PostMan发送二进制流请求

    一、将byte数组转二进制流文件,并保存到本地 byte [] oneshotBytes=new byte[]{78,-29,51,-125,86,-105,56,82,-94,-115,-22,-105,0,-45,-48,-114,27,13,38,45,-24,-15,-13,46,88,-90,-66,-29,52,-23,40,-2,116,2,-115,17,36,15,-84,88,-72,22,-86,41,-90,-19,-58,19,99,-4,-63,29,51,-69,117,-120,121,3,-103,-75,44,64,-58,-34,73,-22,110,-90,92,-35,-18,-128,16,-

    2024年02月15日
    浏览(29)
  • java图片转二进制流_java将文件转化成二进制流

    二进制流的主要编码格式是base64码。可以在网上找一些在线转base64编码的网站进行尝试转换。 例如:http://imgbase64.duoshitong.com/然后通过前端展现和下载。 前端显示二进制流图片(src中放置base64码及二进制流) 前端下载二进制流文件(herf中放置base64码及二进制流,download后面放

    2024年02月06日
    浏览(43)
  • html2canvas生成图片地址Base64格式转成blob在转成file(二进制)可正常发送(保姆教程,复制粘贴可用)

    开始:                                                  最终结果:                                                      1. html2canvas方法生成的图片地址已Base64编码形式放在img标签src中可直接展示生成的图片(注意 页面标签获取位置 ,还有个 setTimeout 页面渲染需要

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包