Elasticsearch的基本操作,需要使用postman
Es支持Restful风格的请求,可以使用postman来创建索引。
下面创建了索引:(索引不能重复)
http://localhost:9200/books PUT
books为索引名
PUT 创建索引
GET 查询索引
DELETE 删除索引
默认情况下,Es没有分词器,分词器是以插件包的形式存在。
下载地址 :https://github.com/medcl/elasticsearch-analysis-ik/releases/
解压 zip文件后,把内容复制进来
重新启动es即可。
请求的body格式为raw格式,内容为json格式(如下)
PUT请求
http://localhost:9200/books
all这个属性是虚拟的,不存在的,是通过扩展的形式,将name和description通过copy的方式合并到all里面的
type:keyword 表示不需要分词,是关键字,text则表示内容需要分词
analyzer: 分词器,指定分词器名称
copy_to: 扩展字段复制,组合形成的虚拟字段。
{
"mappings":{
"properties":{
"id":{
"type":"keyword"
},
"name":{
"type":"text",
"analyzer":"ik_max_word",
"copy_to":"all"
},
"type":{
"type":"keyword"
},
"description":{
"type":"text",
"analyzer":"ik_max_word",
"copy_to":"all"
},
"all":{
"type":"text",
"analyzer":"ik_max_word"
}
}
}
}
GET请求
http://localhost:9200/books
DELETE请求
http://localhost:9200/books
添加文档都是post方式
添加文档可以看到,id并不是我们数据中的id,系统自动生成id
http://localhost:9200/books/_doc
{
"id":1,
"name":"helloworld",
"type":"helloworld",
"description":"helloworld"
}
id是由系统生成的随机id,而不是body里的id
在链接中传入id
使用_create创建文档
使用GET请求,
http://localhost:9200/books/_doc/3
使用GET请求,
http://localhost:9200/books/_search
使用GET请求,
http://localhost:9200/books/_search?q=name:hello
q=name:hello
q是 query的缩写
name表示查询的字段
hello表示关键词
可以看到没查到任何结果,因为英文的分词是空格,helloworld没有空格,会被认为是一个词,所以不会被分拆。
此时再添加几个符合条件的文档后,再执行查询
DELETE操作
http://localhost:9200/books/_doc/3
修改操作就是覆盖操作,所以修改和添加是相同的
这里查询出一条数据进行修改
修改内容,并发送
查询内容,发现内容被完全覆盖了
POST请求
http://localhost:9200/books/_update/2
{
"doc":{
"name":"hello xiaowang"
}
}
再次查询,可以看到只是部分内容被修改