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)
}
}
}
};
赞赏码


非学,无以致疑;非问,无以广识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2018-10-20 最完美解决Nginx部署ThinkPHP项目的办法
2018-10-20 最完美解决Nginx部署ThinkPHP项目的办法
2018-10-20 nginx 80端口重定向到443端口
2018-10-20 nginx 80端口重定向到443端口