掌握ElasticSearch(四):数据类型、回复体

文章目录

一、数据类型

在 Elasticsearch 中,文档(Document)是最小的数据单元,每个文档都是 JSON 格式的数据。为了有效地索引和搜索这些文档,Elasticsearch 定义了多种数据类型来表示文档中的字段。下面是一些常见的数据类型:

1. 基本数据类型

  • text:用于全文本值,如博客文章或电子邮件正文。这些字段可以被分析成多个词项,用于全文搜索。
  • keyword:用于结构化数据,如电子邮件地址、主机名或标签。它们不会被分析,通常用于过滤、排序和聚合。
  • integerlong:分别用于32位和64位整数。
  • floatdouble:分别用于32位和64位浮点数。
  • boolean:用于布尔值,即 true 或 false。
  • date:用于日期值,支持多种日期格式,包括时间戳。
  • binary:用于二进制数据,以 Base64 编码字符串的形式存储。

2.复合数据类型

  • object:允许在一个字段中嵌套多个字段,创建复杂的对象模型。
  • nested:与 object 类似,但是每个嵌套的对象都被独立地索引,这使得对嵌套对象的精确查询成为可能。
  • array:任何类型的字段都可以是一个数组,只需简单地为同一个字段指定多个值即可。

3.特殊数据类型

  • geo_point:用于地理位置点,支持经纬度坐标,可以用于距离查询和地理空间查询。
  • geo_shape:用于更复杂的地理形状,如多边形或多线。
  • ip:用于 IP 地址,支持 IPv4 和 IPv6。
  • completion:用于自动完成建议功能,常用于实现搜索引擎的"按需输入"功能。
  • range:用于范围值,比如日期范围、数字范围等。

4.元数据字段

  • _id:文档的唯一标识符。
  • _source:包含原始 JSON 文档的字段。
  • _type:文档的类型(注意:从 Elasticsearch 7.0 开始,每个索引只能有一个类型)。
  • _index:文档所属的索引名称。
  • _version:文档的版本号,每次更新文档时都会增加。

二、API响应结构

Elasticsearch 是一个分布式的搜索和分析引擎,适用于需要快速搜索大量数据的应用场景。当向 Elasticsearch 发送请求(例如搜索或索引操作)时,它会返回一个 JSON 格式的响应体。这个响应体包含了关于请求结果的详细信息。

json 复制代码
{
  "took": 5,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 10,
      "relation": "eq"
    },
    "max_score": 1.3862944,
    "hits": [
      {
        "_index": "my_index",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.3862944,
        "_source": {
          "title": "Example Document",
          "content": "This is an example document for testing."
        }
      },
      // 更多命中结果...
    ]
  }
}

1. 基本信息

  • took: 表示执行请求所花费的时间,以毫秒为单位。
  • timed_out : 表明请求是否超时。如果值为 true,则表示请求在完成之前已超时。

2. 搜索结果

  • _shards: 包含了关于分片的信息,包括成功、失败的分片数量等。
  • hits : 这是搜索结果的核心部分,包含以下子项:
    • total : 匹配查询的文档总数。在较新的版本中,它可能是一个对象,其中包含 valuerelation 两个字段,value 表示匹配的文档数,relation 表示这个数字是否准确。
    • max_score: 如果使用了评分,则这是所有匹配文档中的最高评分。
    • hits : 一个数组,每个元素代表一个匹配的文档,包含以下信息:
      • _index: 文档所在的索引名。
      • _type: 文档类型(在7.x及更高版本中,此字段已被移除)。
      • _id: 文档的唯一标识符。
      • _score: 文档与查询的相关性得分,得分越高表示相关性越高。
      • _source : 包含了文档的实际内容,除非明确关闭了 _source 字段的存储。
      • highlight: 如果启用了高亮显示功能,这里将包含高亮的片段。

3. 聚合结果

  • aggregations : 当查询中包含聚合操作时,此部分将包含聚合的结果。每个聚合都有自己的名称,并且结果可以非常多样化,具体取决于所使用的聚合类型(如 terms, histogram, stats 等)。

4. 错误信息

  • errors : 如果请求过程中发生了错误,此字段将被设置为 true,并且响应体中会包含具体的错误信息。
  • failures: 在多分片请求中,如果某些分片处理失败,这里的数组将列出这些失败的详情。

在上面这个例子中,我们可以看到请求花费了5毫秒,没有超时,所有的分片都成功处理了请求,总共有10个文档匹配了查询条件,其中最高得分为1.3862944,第一个匹配的文档是ID为1的文档,其标题为"Example Document"。

相关推荐
刘圆辉26 分钟前
DataSophon集成ApacheImpala的过程
大数据·impala·datasophon·apache impala
guanpinkeji1 小时前
剧本杀门店预约小程序,在线一键预约体验
大数据·小程序·团队开发·软件开发
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+大模型股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI
大数据·爬虫·python·深度学习·数据挖掘·数据分析·课程设计
EasyNVR2 小时前
NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用
大数据·小程序·音视频·监控·视频监控
jonyleek2 小时前
数据可视化:JVS-BI仪表盘图表样式配置全攻略,打造个性化数据展示!
java·大数据·信息可视化·数据挖掘·数据分析·自动化·软件需求
图扑软件2 小时前
掌控物体运动艺术:图扑 Easing 函数实践应用
大数据·前端·javascript·人工智能·信息可视化·智慧城市·可视化
TechubNews3 小时前
Vitalik 新文丨以太坊可能的未来:The Splurge
大数据·人工智能·机器学习·web3·区块链
武子康3 小时前
大数据-197 数据挖掘 机器学习理论 - scikit-learn 泛化能力 交叉验证
大数据·人工智能·python·机器学习·数据挖掘·scikit-learn
B站计算机毕业设计超人4 小时前
计算机毕业设计Python+大模型恶意木马流量检测与分类 恶意流量监测 随机森林模型 深度学习 机器学习 数据可视化 大数据毕业设计 信息安全 网络安全
大数据·python·深度学习·随机森林·机器学习·课程设计·数据可视化
Double@加贝4 小时前
Hadoop-002-部署并配置HDFS集群
大数据·hadoop·hdfs