• A+

elasticsearch-mapping字段类型

  1、text

       该字段用于索引全文文本,例如电子邮件的正文或产品的描述。 对这些字段进行analyzed ,即通过分析器将其转换成索引之前的各个术语列表。 分析过程允许Elasticsearch搜索每个全文本字段中的单个单词。 文本字段不用于排序,很少用于聚合(尽管重要的术语聚合是一个显着的例外)。
如果您需要索引结构化内容(如电子邮件地址,主机名,状态代码或标签),则可能您应该使用keyword字段。 对于代码或标签,您也可能应该使用keyword字段。

       有时,同时具有全文( text )和关键字( keyword )版本是有帮助的:一个用于全文本搜索,另一个用于聚合和排序。 这可以通过多字段实现。

 2、keyword

      用于索引结构化的数据的字段,比如 email 地址、主机名、状态码、邮政编码或者标签,通常用于过滤(查找所有状态是 published 的博客文章)、排序、聚合。keyword 字段只能通过精确值来搜索。
如果需要索引全文内容,比如 email 体或者产品描述,那么你可能需要使用 text 字段。

3、数字类型

      integer、float

4、array

在 Elasticsearch 中,没有特定的 array 类型。默认情况下,任何字段都可以包含0个或者更多值,但是,所有 array 中的值必须具有相同的数据类型,例如:
字符串数组:[“one”, “two”]
整数数组:[1,2]
数组的数组:[1, [2, 3]],等价于[1,2,3]
对象数组:[ { "name": "Mary", "age": 12 }, { "name": "John", "age": 10 }]

当自动添加一个字段,array 的第一个值决定了字段的类型。所有接下来的值必须使用相同的数据类型或者必须至少能将他们转换为与它相同的类型
数组不支持混合的数据类型:[10, “some string”]
数组可以包含 null 值,这些值可以由配置的 null_value 替换或完全跳过。一个空的 array [] 被视为不存在的字段-无值的字段。

文档中使用 array 类型不需要提前做任何配置,天生就支持。

PUT my_index/my_type/1
{
"message": "some arrays in this document...",
"tags": [ "elasticsearch", "wow" ],
"lists": [
{
"name": "prog_list",
"description": "programming list"
},
{
"name": "cool_list",
"description": "cool stuff list"
}
]
}

5、boolean
   布尔字段接受JSON true和false值,但也可以接受被解释为true或false的字符串和数字
   在5.3.0中弃用。
   任何非false,“false”,true和“true”的值已被弃用。不能使用这些伪布尔值("off", "no", "0", "", 0, 0.0)搜索布尔域。 请改用true或false。

6、date

    在内部,日期将转换为UTC(如果指定了时区),并将其存储为表示milliseconds-since-the-epoch的长整型数。
日期格式可以自定义,但如果没有指定格式,则使用默认格式:

"strict_date_optional_time||epoch_millis"

意味着它将接受带有可选时间戳的日期,这些日期符合strict_date_optional_time或者

milliseconds-since-the-epoch所支持的格式。

7、binary

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

 

所属分类:产品

全部评论: 0

    我有话说:
    ×