搜索引擎ElasticSearch理论以及增删改操作(四)

一.基础概念:
1.集群和节点:

集群: 一个集群是由一个或多个节点组合而成,每一个集群都有一个唯一的名字,默认是ElasticSearch,所有的节点都是通过cluster_name(集群的名字)加入集群的,每一个节点都有自己的名字,比如slave1,slave2等,

2.索引:

含有相同属性的文档集合,例如可以用一个索引代表消费者的数据,另一个索引代表产品的数据,

3.类型:

索引可以定义一个或多个类型,文档必须属于一个类型

4.文档:

文档是可以被索引的基本数据单位,比如说一个用户的基本信息,一篇文章的数据等,是整个ES中最小的存储单位

5.总结:

索引相当于一个数据库,类型相当于数据库中的表,文档相当于表中的一行数据记录

6.分片:

每个索引都有多个分片,每个分片是一个Lucene索引好处: 假设一个索引的数据量很大,就会造成硬盘压力很大,同时搜索速到也会出现瓶颈,如果把索引进行分片,可以大大分散压力,加快搜索效率

7.备份:

拷贝一份分片就完成了分片的备份好处: 当一个主分片失败或者出现问题时,备份的分片就可以代替工作,从而提高了ES的可用性,备份的分片还可以执行搜索操作以分摊搜索的压力,ES在创建时会默认创建5个分片,一份备份,这个数量是可以修改的,分片的数量只有在创建索引的时候指定,不能再后期进行修改,而备份是可以动态修改的。

二.索引的创建:

API基本格式 http://<ip>:<port>/<索引>/<类型>/<文档id>

常用HTTP动词 GET/PUT/POST/DELETE

创建索引,通过浏览器创建,然后会在概览中显示,细边框是粗边框的备份
在这里插入图片描述

1.创建索引分类:

1).非结构化创建:

如果看到mappings的值为空就表示是非结构化索引,可以通过在复合查询中进行添加:
book/novel/_mappings
{
  "novel": {
    "properties": {
      "title": {
        "type": "text"
      }
    }
  }
}

2).结构化创建:

通过postman创建新的索引:
请求方式为PUT,请求地址为127.0.0.1:9200/people (people为新的索引的名称)
参数格式为json,参数数据如下:
{
	"settings": {
		"number_of_shards": 3,
		"number_of_replicas": 1
	},
	"mappings": {
		"man": {
			"properties": {
				"name": {
					"type": "text"
				},
				"country": {
					"type": "keyword"
				},
				"age": {
					"type": "integer"
				},
				"date": {
					"type": "date",
					"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis "
				}
			}
		}
	}
}

三.数据插入:

文档id:是一个唯一的索引值,指向我们的文档id

方式一.指定文档id插入:

通过postman进行数据插入:  PUT请求
    127.0.0.1:9200/people/man/1    man是类型,1表示id
        {
        	"name":"李国辉",
        	"country":"China",
        	"age":25,
        	"date": "1992-12-29"
        }

显示成功:
在这里插入图片描述

方式二.自动产生文档id插入:

通过postman进行数据插入:   post请求

    127.0.0.1:9200/people/man/
        {
        	"name":"李国辉一号",
        	"country":"China",
        	"age":24,
        	"date": "1992-12-29"
        }

数据显示(指定id生成的id为1,没有指定的就是默认生成的id):
在这里插入图片描述

四.数据修改:

方式一.直接修改文档:

通过postman进行修改:
127.0.0.1:9200/people/man/1/_update 传入修改的类型是man,和要修改的id为1,_update表明这条数据被修改过

{
   "doc": {
  	  "name": "一个好人"  //把name的值修改成一个好人
      }
}

结果显示:
在这里插入图片描述
修改成功返回:
在这里插入图片描述
方式二.脚本修改文档:

127.0.0.1:9200/people/man/1/_update
    {
        "script": {
            "lang": "painless",
            "inline": "ctx._source.age += 10"
        }
    }

或者把修改提出来写:

{
 	"script": {
 		"lang": "painless",
 		"inline": "ctx._source.age += params.age",  //ctx 表示ES的上下文,_source表示当前的文档
 		"params": {
 			"age": 100
 		}
 	}
}

这两种方式都可以

五.数据删除:

1.删除文档:

127.0.0.1:9200/people/man/1   请求方式  DELETE

2.删除索引:

在head上可以直接进行删除,也可以在postman上进行删除
127.0.0.1:9200/people   索引删除,其下面所有的数据都删除

以上就完成了elasticSearch的简单操作,下面会着重研究查询等…

猜你喜欢

转载自blog.csdn.net/ligh_sqh/article/details/85322074