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)
      					}
   				 	  }
					}
				};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值