Elasticsearch数据类型

Elasticserach数据类型

基本数据类型

keyword

keyword类型是不进行切分的字符串类型。这里的“不进行切分”指的是:在索引时对keyword类型的数据不进行切分,直接构建倒排索引;在搜索时,对该类型的查询字符串不进行切分后的模糊匹配。keyword类型数据一般用于对文档的过滤、排序和聚合。

keyword经常用于描述姓名、产品类型、用户ID、URL和状态码等。keyword类型数据一般用于比较字符串是否相等,不对数据进行部分匹配,因此一般查询这种类型的数据时使用term查询。

text

text类型是可进行切分的字符串类型。这里的“可切分”指的是:在索引时,可按照相应的且此算法对文本内容进行切分,然后构建倒排索引;在搜索时,对该类型的查询字符串按照用户的切词算法进行切分,然后对切分后的模糊匹配程度打分。

数值类型

ES支持的数值类型有long、integer、short、byte、double、float、half_float、scaled_float和unsigned_long等。各类型所表达的数值范围可以参考官方文档,
https://www.elastic.co/guide/en/elasticsearch/reference/current/number.html

对于数值型数据,一般使用term搜索或者范围搜索。

布尔类型

布尔类型使用boolean定义,用于业务中的二值表示。写入或者查询该类型的数据时,其值可以使用true和false,或者使用字符串形式的"ture"和"false"。

日期类型

在ES中,日切类型的名称为date。ES中存储的日期是标准的UTC格式。

一般使用如下形式表示日期类型数据:

  • 格式化的日期字符串。
  • 毫秒级的长整型,表示从1970年1月1日0点到现在的毫秒数。
  • 秒级别的整型,表示从1970年1月1日0点到现在的秒数。

日期类型的默认格式为stric_date_optional_time||epoch_millis。其中,stric_date_optional_time的含义是严格的时间类型,支持yyyy-MM-dd、yyyyMMdd、yyyyMMddHHmmss、yyyy-MM-ddTHH:mm:ss、yyyy-MM-ddTHH:mm:ss.SSS和yyyy-MM-ddTHH:mm:ss.SSSZ等格式,epoch_millis的含义是从1970年1月1日0点到现在的毫秒数。

posted @ 2023-10-24 15:22  每天提醒自己要学习  阅读(128)  评论(0)    收藏  举报