索引的创建及删除

1. 通过索引一篇文档创建了一个新的索引 。这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射。

利用Kibana提供的DevTools来执行命令,要创建一个索引

put /sdb  (其中sdb为一个索引)

创建成功后会返回如下结果

{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "sdb"
}

如果你想禁止自动创建索引,你 可以通过在 config/elasticsearch.yml 的每个节点下添加下面的配置:

action.auto_create_index: false

{
"sdb" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"creation_date" : "1552621484634",
"number_of_shards" : "5", //每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。
"number_of_replicas" : "1", //每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。
"uuid" : "PQ1TSt5hQOua_cUAegrYmw",
"version" : {
"created" : "6060299"
},
"provided_name" : "sdb"
}
}
} }

如果想修改副本数,可以用 update-index-settings API 动态修改副本数:

PUT /sdb/_settings
{
"number_of_replicas": 1
}

再次使用GET /sdb进行查看

上面我们说了如何创建一个索引,那么接下来我们来说说如何删除一个索引

DELETE /sdb 

删除成功后会有以下提示:

{
"acknowledged" : true
}

mapping映射

映射是创建索引的时候,可以预先定义字段的类型以及相关属性

Elasticsearch会根据JSON源数据的基础类型去猜测你想要的字段映射。将输入的数据变成可搜索的索引项。Mapping就是我们自己定义字段的数据类型,同时告诉Elasticsearch如何索引数据以及是否可以被搜索。

作用:会让索引建立的更加细致和完善

类型:静态映射和动态映射

静态映射

动态映射

什么是动态映射

文档中碰到一个以前没见过的字段时,动态映射可以自动决定该字段的类型,并对该字段添加映射

如何配置动态映射

  1. 通过dynamic属性进行控制
  2. true:默认值,动态添加字段; false:忽略新字段; strict:碰到陌生字段,抛出异常

适用范围

适用在根对象上或者object类型的任意字段上

内置类型

string类型: text,keyword(string类型在es5已经被弃用)

数字类型:long, integer, short, byte, double, float

日期类型: date

bool类型: boolean

binary类型: binary  

复杂类型: object ,nested

geo类型: point , geo-shape

专业类型: ip, competion

mapping 限制的type

 

创建mapping

PUT lagou
{
"mappings": {
"job":{
"properties": {
"title":{ //title 字段
"type":"text" //类型设置,text类型可分词
},
"salary_min":{
"type":"integer"
},
"city":{
"type": "keyword" //keyword关键词,不可分词
},
"company":{ //该字段下有多个键值对
"properties": {
"name":{
"type":"text"
},
"company_addr":{
"type":"text"
},
"employee_count":{
"type":"integer"
}
}
},
"publish_date":{
"type":"date",
"format": "yyyy-MM-dd"
},
"comments":{
"type": "integer"
}
}
}
}
}

PUT lagou/job/1
#当类型不符合的时候他会尝试去转换类型,比如字符串的数字和数字类型,但是如果无法转换就会报错。

{
"title":"python分布式web开发",
"salary_min":15000,
"city":"北京",
"company":{
"name":"百度",
"company_addr":"软件园",
"employee_count":50
},
"publish_date":"2017-4-16",
"comments":15
}

#获取映射

GET lagou/_mapping

GET lagou/_mapping/job  

GET _all/_mapping/job

最新文章

  1. sql按字符截取字段
  2. web前端图片极限优化策略
  3. 定时器Timer
  4. 如何理解Stay hungry,stay foolish?
  5. write() ,read();
  6. RemoteViews的内部机制
  7. C# foreach获取集合元素索引的坑
  8. [JLOI2013]删除物品 树状数组
  9. nasm预处理器(4)
  10. Hbase的常见shell操作
  11. Android-获取Html元素
  12. [20180928]如何能在11g下执行.txt
  13. [IR] Open Source Search Engines
  14. Oracle备份
  15. luogu [TJOI2007]线段
  16. EditPlus常用快捷键[私人]
  17. MySQL字符集编码相关
  18. Maven build标签
  19. LibreOJ 6001 太空飞行计划(最大流)
  20. redis数据库介绍(NoSql数据库)

热门文章

  1. Java使用Filter用户权限控制
  2. SSH框架下页面跳转入门篇
  3. 起redis服务时报错Creating Server TCP listening socket *:6379: bind: No such file or directory
  4. centos7安装PHP7的redis扩展
  5. 通过Xshell实现socket代理访问公司内网
  6. 第11课 - enum, sizeof, typedef 分析
  7. 蒲公英 · JELLY技术周刊 Vol.22: npm i react-router@6.0.0-beta.0
  8. Bootstrap学习第一天
  9. 关于window服务器中新建的普通用户无法登录远程桌面
  10. 查看 JVM 参数的默认值