当前位置:   article > 正文

ElasticSearch的常用数据类型_elastic search 数据类型

elastic search 数据类型

常见的数据类型

Text类型(文本数据类型)

用于全文检索的字段,例如电子邮件的正文或产品的描述。这些字段是analyzed,也就是说,它们通过分析器传递,以便 在被索引之前将字符串转换为单个术语的列表。通过分析过程,Elasticsearch可以在 每个全文字段中搜索单个单词。文本字段不用于排序,很少用于聚合

  1. PUT test-03
  2. {
  3. "mappings": {
  4. "properties": {
  5. "full_name": {
  6. "type": "text"
  7. }
  8. }
  9. }
  10. }

Keyword (关键字数据类型)

用于索引结构化内容(例如ID,电子邮件地址,主机名,状态代码,邮政编码或标签)的字段。

关键字字段只能按其精确值进行搜索。

  1. PUT test-03
  2. {
  3. "mappings": {
  4. "properties": {
  5. "tags": {
  6. "type": "keyword"
  7. }
  8. }
  9. }
  10. }

Alias(别名类型)

别名包括两种类型:

  • 数据流的别名指向一个或多个数据流
  • 索引的别名指向一个或多个索引

当使用ES时,可以创建别名来对索引进行分组、划分和隐藏。创建别名是一种将逻辑名称映射到一个或多个索引的方式,这使得在查询过程中能够快速地使用这些索引。

  1. POST _aliases
  2. {
  3. "actions": [
  4. {
  5. "add": {
  6. "index": "test-01",
  7. "alias": "test"
  8. }
  9. },
  10. {
  11. "add": {
  12. "index": "test-03",
  13. "alias": "test"
  14. }
  15. }
  16. ]
  17. }
  18. # 获取所有的别名列表
  19. GET _aliases
  20. # 获取test别名列表
  21. GET _alias/test

Arrays (集合类型)

在Elasticsearch中,没有专用的array数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型.

  1. {
  2. "message": "some arrays in this document…",
  3. "tags": [
  4. "elasticsearch",
  5. "wow"
  6. ],
  7. "lists": [
  8. {
  9. "name": "knight",
  10. "description": "programming list"
  11. },
  12. {
  13. "name": "rose",
  14. "description": "cool stuff list"
  15. }
  16. ]
  17. }

Binary (二进制类型)

该binary类型接受二进制值作为 Base64编码的字符串。该字段默认情况下不存储,并且不可搜索

  1. PUT test-03
  2. {
  3. "mappings": {
  4. "properties": {
  5. "tags": {
  6. "type": "text"
  7. },
  8. "blob":"binary"
  9. }
  10. }
  11. }

Boolean(布尔类型)

布尔字段接受JSON true和false值,但也可以接受解释为true或false的字符串

  1. PUT test-03
  2. {
  3. "mappings": {
  4. "properties": {
  5. "is_published": {
  6. "type": "boolean"
  7. }
  8. }
  9. }
  10. }

日期类型

JSON没有日期数据类型,因此Elasticsearch中的日期可以是:

  • 包含格式化日期的字符串,例如"2024-01-01"或"2024/01/01 12:10:30"
  • 时间戳
  1. PUT test-011
  2. {
  3. "mappings": {
  4. "properties": {
  5. "date":{
  6. "type": "date",
  7. "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
  8. }
  9. }
  10. }
  11. }
  12. PUT test-011/_doc/1
  13. { "date": "2024-01-01" }
  14. PUT test-011/_doc/2
  15. { "date": "2024-01-02" }
  16. GET test-011/_search

返回:

  1. {
  2. "took" : 558,
  3. "timed_out" : false,
  4. "_shards" : {
  5. "total" : 1,
  6. "successful" : 1,
  7. "skipped" : 0,
  8. "failed" : 0
  9. },
  10. "hits" : {
  11. "total" : {
  12. "value" : 2,
  13. "relation" : "eq"
  14. },
  15. "max_score" : 1.0,
  16. "hits" : [
  17. {
  18. "_index" : "test-011",
  19. "_type" : "_doc",
  20. "_id" : "1",
  21. "_score" : 1.0,
  22. "_source" : {
  23. "date" : "2024-01-01"
  24. }
  25. },
  26. {
  27. "_index" : "test-011",
  28. "_type" : "_doc",
  29. "_id" : "2",
  30. "_score" : 1.0,
  31. "_source" : {
  32. "date" : "2024-01-02"
  33. }
  34. }
  35. ]
  36. }
  37. }

Dense vector(密集矢量数据类型)

Flattened (扁平化的数据类型)

Geo-point(地理位置数据类型)

  1. PUT test-012
  2. {
  3. "mappings": {
  4. "properties": {
  5. "location": {
  6. "type": "geo_point"
  7. }
  8. }
  9. }
  10. }
  11. ###
  12. PUT test-012/_doc/1
  13. {
  14. "text": "Geo-point as an object",
  15. "location": {
  16. "lat": 41.12,
  17. "lon": -71.34
  18. }
  19. }

地理形状数据类型

的geo_shape数据类型方便的索引和与任意的地理搜索为矩形和多边形的形状,例如。当正在索引的数据或正在执行的查询包含除点以外的其他形状时,应使用它。

  1. PUT test-012
  2. {
  3. "mappings": {
  4. "properties": {
  5. "location": {
  6. "type": "geo_shape"
  7. }
  8. }
  9. }
  10. }

IP数据类型

一个ip字段可以索引/存储IPv4或 IPv6地址

  1. PUT test-013
  2. {
  3. "mappings": {
  4. "properties": {
  5. "ip_addr": {
  6. "type": "ip"
  7. }
  8. }
  9. }
  10. }
  11. PUT test-013/_doc/1
  12. {
  13. "ip_addr": "192.168.1.1"
  14. }

Join (联接数据类型)

Nested (嵌套数据类型)

Object (对象数据类型)

Numeric (数值数据类型)

Range(范围数据类型)

Token count (令牌计数数据类型)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/395302
推荐阅读
相关标签
  

闽ICP备14008679号