1.概念:
Elasticsearch是一个分布式全文搜索引擎。
2.与传统的索引的区别:
传统的索引是根据id查数据
全局搜索 是根据关键字查id 再通过id查数据
3.下载与启动:
下载完成后,运行 bin 目录下的 elasticsearch.bat 双击运行,不报错并在浏览器打开localhost:9200 出现如下json串说明启动成功
4.ES索引操作
新建:PUT请求 http://localhost:9200/books
查询 GET请求 http://localhost:9200/books
删除:DELETE请求 http://localhost:9200/books
5.设定分词器
如何使用?
IK分词器 下载完成后将其 复制到elasticsearch 的 plugins 目录下 然后重新启动es
创建索引的时候 在put请求的请求体中加入json串 格式如下
{
"mappings":{
"properties":{
"id":{
"type":"keyword",
}
"name":{
"type":"text" //表明提供的是文本信息可以被分词
"analyer": "ik_max_word" //表明使用ik分词器
"copy_to":"all"
}
"type":{
"type":"keyword"
}
"description":{
"type":"text",
"analyer": "ik_max_word" ,
"copy_to":"all"
}
"all":{
"type":"text",
"analyer": "ik_max_word" //不真实存在 仅用于查询
}
}
}
}
正常情况下的查询仅能通过一个属性 ,如根据name分,或者是根据description内容中查找,但是更多时候我们需要对两部分同时进行查询或分词,又该如何?因此有自定义类一个all 然后通过copy_to将两个字段复制到all中,这样all就可以有这两个中的内容了。
6. 总结:
创建文档:
post http://localhost:9200/books/_doc 使用系统生成id
post http://localhost:9200/books/_create/1 使用指定id
post http://localhost:9200/books/_doc/1 使用指定id,不存在创建,存在就更新(版本递增)
查询文档
get http://localhost:9200/books/_doc/1 查询单个文档
get http://localhost:9200/books/_search 查询全部文档
条件查询
get http://localhost:9200/books/_search?q=name:springboot
删除文档
delete http://localhost:9200/books/_doc/1
修改文档(全量修改)
put http://localhost:9200/books/_doc/1
{
"name" : "springboot",
"type" : "springboot"
"description" : "springboot"
}
修改文档(部分修改)
post http://localhost:9200/books/_update/1
{
"doc":{
"name":"springboot"
}
}