掌握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"。

相关推荐
小刘鸭!10 分钟前
Flink中并行度和slot的关系——任务和任务槽
大数据·flink
LI JS@你猜啊1 小时前
Elasticsearch 集群
大数据·服务器·elasticsearch
筒栗子1 小时前
复习打卡大数据篇——Hadoop HDFS 03
大数据·hadoop·hdfs
SelectDB4 小时前
Apache Doris 创始人:何为“现代化”的数据仓库?
大数据·数据库·云原生
SelectDB4 小时前
飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!
大数据·数据库·数据分析
小刘鸭!5 小时前
Hbase的特点、特性
大数据·数据库·hbase
神奇侠20245 小时前
解决集群Elasticsearch 未授权访问漏洞
elasticsearch
Elastic 中国社区官方博客5 小时前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索
神奇侠20245 小时前
解决单台Elasticsearch 未授权访问漏洞
elasticsearch
nece0015 小时前
elasticsearch 杂记
大数据·elasticsearch·搜索引擎