elasticsearch mapping

es的mapping设置很关键,mapping设置不到位可能导致索引重建。如何更好的设置mapping?

请看下面各个类型介绍^_^

 

core types

每一个JSON字段可以被映射到一个特定的核心类型。JSON本身已经为我们提供了一些输入,支持string, integer/long, float/double, boolean, and null.

下面的示例tweet的JSON文档将被用来解释核心类型:

{
"tweet"{
"user":"kimchy"
"message":"This is a tweet!",
"postDate":"2009-11-15T14:12:12",
"priority":4,
"rank":12.3
}
}

可以显式映射为上面的JSON tweet:

{
"tweet":{
"properties":{
"user":{"type":"string","index":"not_analyzed"},
"message":{"type":"string","null_value":"na"},
"postDate":{"type":"date"},
"priority":{"type":"integer"},
"rank":{"type":"float"}
}
}
}
string

基于文本的字符串类型是最基本的类型,包含一个或多个字符。可以映射一个例子:

{
"tweet":{
"properties":{
"message":{
"type":"string",
"store":"yes",
"index":"analyzed",
"null_value":"na"
}
}
}
}

上面的映射定义一个字符串消息属性/字段在tweet类型。字段存储在索引(所以它稍后可以被检索使用选择性加载搜索时),并得到分析(分解成可搜索条件)。如果该消息有一个空值,那么该值将被存储是na.

下表列出了所有的属性,可以使用字符串类型:

Attribute Description

 

index_name 字段的名称,将存储在索引中。默认属性/字段名.

 

store 设置为yes来存储实际的字段索引,没有不存储它。默认为没 有(注意,JSON文档本身是存储,可以从它检索)。

 

index 为该领域设置为分析索引和搜索在被分解成令牌使用分析 仪。不分析意味着其仍可搜索,但没有经过任何分析过程或分 解为令牌。不意味着它不会搜索(作为一个单独字段,它可能仍 然被包括在所有)。设置没有禁用包含在所有。默认为分析。

 

term_vector 可能的值是不,是的,与补偿,与职位,与位置偏移。默认为没 有。

 

boost 该boost的值,默认是1.0

 

null_value 当有一个(JSON)null值的字段,可以使用null值的字段值。默认 为不添加字段在所有。

 

omit_norms 布尔值如果规范应该省略或不是。默认值为假的分析领域,适 用于不分析领域。

 

omit_term_freq_and_positions 布尔值如果术语和位置应该忽略频率。默认值为假。弃用自 0.20,看到指数期权。

 

index_options 自从0.20可用。允许设置索引选项,可能的值是文档(只有doc 数字索引),freqs(doc数字和词的频率),和职位(doc数字,词的频 率和位置)。默认位置分析领域,和文档中没有分析领域。因为 0.90也可以设置偏移量(doc数字,词的频率,位置和补偿)。

 

analyzer 这个分析仪用于分析文本内容分析时在索引和搜索时使用查 询字符串。默认为全球配置分析仪。
 

index_analyzer 这个分析仪用于分析文本内容分析时在索引。

 

search_analyzer 这个分析仪用于分析场当一部分查询字符串。可以更新现有 的字段。

 

include_in_all 应该被包括在这个领域的所有字段(如果启用)。如果索引设置 为无默认值为false,否则,默认为true或父对象类型设置。
ignore_above 这个分析器将忽略字符串大于这个尺寸。用于通用不分析领 域,应该忽略长文本。(因为@0.19.9)。
position_offset_gap 位置增量字段实例之间的差距与相同的字段名。默认值为0。

字符串类型也支持自定义索引参数相关的索引值。例如:

{
"message":{
"_value":"boosted value",
"_boost":2.0
}
}

需要消除歧义的映射文档的含义。否则,该结构将解释“消息”作为“对象”类型的值。键值(或价值)在内部文档指定字符串内容,最终真正应该被编入索引。促进(或提高)键指定每个字段的文档增加(这里是2.0)。

number

许多类型的基础支持浮动,双,字节,短、整数和长。它使用特定的构造在Lucene为了支持数字值。数字类型有相同的范围作为相应的Java类型。一个例子可以映射:

{
"tweet":{
"properties":{
"rank":{
"type":"float",
"null_value":1.0
}
}
}
}

在这里多举几个常用的例子:

例1:当某一个字段要分词搜索, 则index就要设置相应的分词器,store设置为true

例2:当某一个字段要facet(分组统计),则必须设置这个字段为no_analyzerd(不分词);原因是字段不设置分词,默认是一元分词。

例3:搜索关键字相应分数,对一些排名算法有一定的帮助,可以为一些重要字段设置分值(boost)

例4:时间格式问题,es支持format时间格式。(format:yyyy-MM-dd HH:mm:ss.SSS)

……

本文出自 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html#mapping-core-types

转载于:https://www.cnblogs.com/Rinch/p/3557931.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值