您的位置:首页 > 科技 > 能源 > 免费云手机无限时间版_汕头百姓网二手车交易市场_外贸seo是什么意思_网推怎么做

免费云手机无限时间版_汕头百姓网二手车交易市场_外贸seo是什么意思_网推怎么做

2024/12/23 10:08:24 来源:https://blog.csdn.net/w_t_y_y/article/details/144215206  浏览:    关键词:免费云手机无限时间版_汕头百姓网二手车交易市场_外贸seo是什么意思_网推怎么做
免费云手机无限时间版_汕头百姓网二手车交易市场_外贸seo是什么意思_网推怎么做

前言

1、字段类型

在 Elasticsearch (ES) 中,字段类型定义了数据的格式和如何索引与存储字段的内容。每个字段都有一个类型,这决定了它如何在索引中存储、搜索和聚合。

这些数据类型可以组合使用,并根据实际的业务需求来选择最合适的数据类型。在创建索引时,映射(Mapping)用于定义每个字段的类型和其他属性(如是否分词、是否可索引、是否存储等)。

2、如何查看字段类型
GET /your_index_name/_mapping
{"your_index_name": {"mappings": {"properties": {"title": {"type": "text"},"description": {"type": "text"},"price": {"type": "float"},"created_at": {"type": "date"},"is_active": {"type": "boolean"}}}}
}

以下是 Elasticsearch 中常见的字段类型及其用途。

一、文本类型 (Text)

用于存储和分析全文本数据,适用于字符串、长文本等需要分词的字段。

1、text

用于存储大量的、需要分词的文本数据。Elasticsearch 会对 text 字段的内容进行分析和分词,这样可以支持全文搜索。Elasticsearch 默认会对 text 类型字段使用一个标准分析器(standard analyzer),将其分词成多个单词,以便进行高效的全文搜索。

注意:如果字段的类型是 text,ES 会自动为其创建一个名为 <字段名>.keyword 的子字段,用于精确匹配查询。

适用场景:文章内容、描述、评论等。示例:"description": { "type": "text" }

2、keyword

用于存储不需要分词的字符串数据,通常用于存储标识符、标签、状态、类别等数据。这些字段会被精确匹配,适合用在排序、聚合和过滤中。

适用场景:ID、电子邮件、用户名、状态码等。示例:"status": { "type": "keyword" }

二、数值类型

数值类型用于存储各种数字,包括整数、浮动小数等。

  • long:用于存储长整型数字,范围从 -2^63 到 2^63-1。

    • 示例:"age": { "type": "long" }
  • integer:用于存储整数,范围从 -2^31 到 2^31-1。

    • 示例:"year": { "type": "integer" }
  • short:用于存储较小的整数,范围从 -2^15 到 2^15-1。

    • 示例:"count": { "type": "short" }
  • byte:用于存储很小的整数,范围从 -128 到 127。

    • 示例:"byte_value": { "type": "byte" }
  • double:用于存储浮动小数,精度较高,范围从 -1.7e308 到 1.7e308。

    • 示例:"price": { "type": "double" }
  • float:用于存储浮动小数,精度较低,范围从 -3.4e38 到 3.4e38。

    • 示例:"rating": { "type": "float" }
  • half_float:用于存储精度较低的浮动小数,范围从 -6.5e4 到 6.5e4。

    • 示例:"temperature": { "type": "half_float" }
  • scaled_float:用于存储带小数的浮动数字,通过一个因子来缩放存储的数据。

    • 示例:"price": { "type": "scaled_float", "scaling_factor": 100 }
  • double_rangefloat_rangelong_rangeinteger_range:用于存储数值范围类型的数据,通常用于做范围查询。

    • 示例:"temperature_range": { "type": "double_range" }

三、日期类型date

日期类型用于存储时间戳或日期。默认的日期格式是 yyyy-MM-dd'T'HH:mm:ss.SSSZ,但可以根据需要进行配置。

示例:"timestamp": { "type": "date" }

四、布尔类型boolean

用于存储 truefalse 的值。

示例:"is_active": { "type": "boolean" }

五、二进制类型 (Binary)

用于存储二进制数据(例如图片、音频、视频等)。

示例:"file_data": { "type": "binary" }

六、IP 类型 (IP)

用于存储 IPv4 和 IPv6 地址。

示例:"ip_address": { "type": "ip" }

七、地理位置类型 (Geo)

用于存储地理位置信息。

1、geo_point

用于存储地理坐标(经度、纬度),支持地理位置查询。

示例:"location": { "type": "geo_point" }

2、geo_shape

用于存储复杂的地理形状(如多边形、圆形等),支持对地理区域的查询。

示例:"shape": { "type": "geo_shape" }

八、对象和嵌套类型

1、object

用于存储 JSON 对象。该类型表示字段中包含嵌套的键值对,可以嵌套多层结构。

示例:"address": { "type": "object" }

2、nested

object 类型类似,但它用于存储嵌套对象,并允许对嵌套对象内的字段进行查询和聚合。它会在查询时将嵌套的文档视为独立的文档。

"comments": {"type": "nested"
}

九、范围类型(Range Types)

  • integer_range: 存储整数范围。
  • float_range: 存储浮动小数范围。
  • date_range: 存储日期范围。
  • long_range: 存储长整数范围。

十、合并数据类型(Join)

用于实现父子关系数据建模,常用于表示父文档和子文档之间的关系。

"relationship": {"type": "join"
}

十一、文本多字段(Multi-fields)

在同一字段上定义多个字段类型,便于对数据进行不同方式的处理。例如,可以同时将字段作为 text 类型和 keyword 类型进行存储,以支持全文搜索和精确匹配。

"title": {"type": "text","fields": {"raw": {"type": "keyword"}}
}

十二、标识符类型(Completion)

用于实现高效的建议功能,通常用于自动补全(如搜索框自动提示)。

"suggest": {"type": "completion"
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com