在Http中创建ElasticSearch 需要使用Put方法,且索引不能够重复
创建时需要访问9200这个端口,这个端口用于请求
检查是否启动:
访问localhost:9200 如果反应如下 则表示已经启动
发送put请求
发送put请求我们借用postman进行实现:
URL为:localhost:9200/test,test 表示创建的索引名称,表示我们创建了一个名称为test的索引,这里的索引与MySQL的索引不同,这里的索引在更多的情况下能够代表一个库
此时的test索引一定是存在的,我们再次进行创建(再次send请求)
可以看到请求失败,原因是索引(index) test已经存在,无法再次创建
查看索引就需要使用get方法,索引查询有两种,一种为精准查询,另一种就是查询所有
需要使用索引的完全名称直接查询,使用方法如下:
localhost:9200/test
查出结果如下:
内部包含你的uuid、创建日期等一些列相关信息,uuid和Java的uuid一样,是一个唯一标识,可以根据UUID在本地磁盘中找到相关位置
例如这里的UUID为iBtbVUkkQy2RYwIw0F3lAg,我们在ElasticSearch的data\nodes\0\indices目录下找到相应的文件夹,
这时候请求的方法仍是get方法,但是路径不同
localhost:9200/_cat/indices?v
查询结果:
删除索引的URL不用动,只需要将方法进行一个替换,将Put方法改成Delete方法即可
为了证明是否被删除,我们再次通过get 方法来获取这个索引:
可见状态为404,老标识了,表示没有找到,其次看reason 也可以发现
除此之外我们也可以查询所有去查看是否存在
显然也不存在结果
在存在索引之后我们需要向索引中添加数据,这时候我们需要使用post方法,需要注意的是添加数据需要时json格式
例如:我们添加一个数据为 姓名为李四 年龄18 的男人,并把他放在我们的test下
localhost:9200/test/_doc
body内容:
{
"name": "lisi",
"sex": "男",
"age": 17
}
返回结果集为:
这里的Id是随机生成的,具有唯一性,但是这个Id我们可以自定义且不能重复,如果重复则会覆盖
result 表示执行的结果,我们可以看到其结果为 created,还存在其他类型 如updated,表示更新。
自定义ID可以使用post方法 或者 put方法,但是如果id是随机生成的,只能使用put方法
方法:
url: localhost:9200/test/_doc/10086
结果集:
可见结果集中的Id为10086,
那么我们继续执行会如何
可以看到result 变成了updated
,表示该操作成了更新操作
localhost:9200/test/_create/10088
结果如下:
其类型为_doc_和原来一样,但是只能用于创建,如果已经存在,那么该方法就会报错
如下:
它提示我们这个doc已经存在了,不能够覆盖。
当存入数据我们肯定是需要使用,那么我们就需要对其进行一个查询,查询有两种,一种是根据根据具体的索引进行查询,另一种是直接查询出所有的索引
在上文中,我们创建了一个索引test,在其下创建了一个id为10086的类,我们来获取这个doc
localhost:9200/test/_doc/10086
查询结果
localhost:9200/test/_search
查询结果:
在查询结果中,可以看到total的value中的值有5个,其结果实际上确实存在5个,我们的10086、10087都存在,也确实是我们设置的。
数据存入后往往不是一成不变的,存入数据库的数据总是要修改,那么通过ElasticSearch的数据如何修改?
其实存在两种修改方式 局限修改和全局修改
所谓的局限修改就是精准的修改单个数据
这里需要使用put方法,也可以理解为覆盖
举例 修改id为10086的doc,添加电话这一个属性
修改
数据存入后往往不是一成不变的,存入数据库的数据总是要修改,那么通过ElasticSearch的数据如何修改?
其实存在两种修改方式 局限修改和全局修改
所谓的局限修改就是精准的修改单个数据
这里需要使用put方法,也可以理解为覆盖