Elasticsearch 之Mapping设置
术语介绍
文档 Document:用户存储在es 中的数据文档,es中存储的最小单元,类似于MySQL表中的一行数据
索引 Index:由具有相同字段的文档列表组成,表示一个文档的集合,类似于table,在6.0后一个Index下只有一个type。(在6后的版本会把type去除)
节点 Node:一个Elasticsearch的运行实例,是集群的构成单元
集群 Cluster:由一个或多个节点组成,对外提供服务
每一个文档都有唯一的id标识
自行指定
es自动生成
数据类型
核心数据类型
字符串型 text、keyword
数值型 long、integer、short、byte、double、float、half_float、scaled_float
日期类型 date
布尔类型 boolean
二进制类型 binary
范围类型 integer_range、float_range、long_range、double_range、date_range
如果清楚知道字段要设置的类型,最好作为选择,比如,float 比double可以节省近50%的存储空间
复杂数据类型
数组类型 array
对象类型 object
嵌套类型 nested object (与object不同是此类型会被特殊处理,文档不会和父文档混在一起)
地理位置数据类型
geo_point
geo_shape
专用类型
记录ip地址:ip
实现自动补全:completion
记录分词数:token_count
记录字符串hash值:murmur3
percolator
父子查询:join
多字段特性multi-fields
允许对同一个字段采用不同的配置,比如分词,常见例子如 对人名实现拼音搜索,只需要在人名中新增一个子字段为pinyin即可(要安装文字转拼音插件)
es 批量导入数据后,结果
-
$result = $this->elasticsearch->bulkDoc($params);
-
//var_dump($result);
-
// $result结果:
-
array(3) {
-
["took"]=>int(5)
-
["errors"]=>bool(false)
-
["items"]=>array(12) {
-
[0]=>array(1) {
-
["index"]=> array(8) {
-
["_index"]=>string(8) "rss_data"
-
["_type"]=>string(8) "rss_data"
-
["_id"]=>string(19) "1126102154422484923"
-
["_version"]=> int(2)
-
["result"]=> string(7) "updated"
-
["_shards"]=> array(3) {
-
["total"]=> int(1)
-
["successful"]=> int(1)
-
["failed"]=> int(0)
-
}
-
["created"]=> bool(false)
-
["status"]=> int(200)
-
}
-
}
-
}
-
};
文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/lxw1844912514/article/details/120823444
- 点赞
- 收藏
- 关注作者
评论(0)