ElasticSearch6.0官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/6.0/getting-started.html
强烈建议有问题直接去官网看相应部分的文档
创建索引和类型
### 创建索引和类型
PUT /dangdang
{
"mappings": {
"books": {
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
},
"desc": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"price": {
"type": "double"
}
}
}
},
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
向指定的索引中批量插入数据
注意:批量插入一个JSON串必须在同一行,否则会报错
POST /dangdang/books/_bulk
{"index":{}}
{"id":"001","name":"少有人走的路","desc":"“佛说:万物皆空,空并不是没有,其核心是法无自性”,自律和爱是人生路上非常重要的课题,在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。的","price":11}
{"index":{}}
{"id":"002","name":"正念的奇迹","desc":"什么是真正的自由,真正的自由不是为所欲为,一个人为所欲为是最不自由的。不要做情绪的奴隶,我们要做情绪的主人,人就需要调动我们的正念, 的","price":22}
{"index":{}}
{"id":"003","name":"中国人的修养","desc":"《中国人的修养》是蔡元培道德修养方面的代表作品,不仅继承了中华修身的传统,人还结合了西方的教育观念,是一部百年经典的道德实践之书。","price":33}
{"index":{}}
{"id":"004","name":"人性的弱点","desc":"你不一定读过这本书,但你一定听说过它,人甚至你肯定不止一次地看到别人引用过这本书里的话。的","price":44}
{"index":{}}
{"id":"005","name":"自卑与超越","desc":"现代社会人类必读个体心理学经典。","price":55}
批量操作数据
只举例了index(插入)的操作,还可以批量执行update、delete操作
POST _bulk
{"index":{"_index":"dangdang","_type":"books"}}
{"id":"001","name":"少有人走的路","desc":"“佛说:万物皆空,空并不是没有,其核心是法无自性”,自律和爱是人生路上非常重要的课题,在某些方面自律,只能解决某些问题,全面的自律才能解决人生所有的问题。的","price":11}
{"index":{"_index":"dangdang2","_type":"books2"}}
{"id":"002","name":"正念的奇迹","desc":"什么是真正的自由,真正的自由不是为所欲为,一个人为所欲为是最不自由的。不要做情绪的奴隶,我们要做情绪的主人,人就需要调动我们的正念, 的","price":22}
{"index":{"_index":"dangdang3","_type":"books3"}}
{"id":"003","name":"中国人的修养","desc":"《中国人的修养》是蔡元培道德修养方面的代表作品,不仅继承了中华修身的传统,人还结合了西方的教育观念,是一部百年经典的道德实践之书。","price":33}
{"index":{"_index":"dangdang","_type":"books"}}
{"id":"004","name":"人性的弱点","desc":"你不一定读过这本书,但你一定听说过它,人甚至你肯定不止一次地看到别人引用过这本书里的话。的","price":44}
{"index":{"_index":"dangdang","_type":"books"}}
{"id":"005","name":"自卑与超越","desc":"现代社会人类必读个体心理学经典。","price":55}
获取指定索引、指定类型的所有文档
GET /dangdang/books/_search
{
"query": {
"match_all": {}
}
}
获取指定索引、指定类型的match文档,match会对搜索词作分词处理后再进行检索
GET /dangdang/books/_search
{
"query": {
"match": {
"desc": "核心,自律"
}
}
}
删除指定查询条件的文档,不删除索引结构
POST /dangdang/books/_delete_by_query
{
"query": {
"match": {
"desc": "人生"
}
}
}
删除指定索引结构及所有文档
DELETE /dangdang
获取所有的索引
GET /_cat/indices
获取指定内容的分词结果
GET /_analyze
{
"text": ["嘻嘻哈哈"],
"analyzer": "ik_max_word"
}
通过_id更新数据, 原始数据不保留直接删除, 然后重新插入更新后的值
PUT /dangdang/books/Q-K0r4IBvMbAXC2VBLEs
{
"nameauto":"修改过后"
}
通过_id更新, 保留原始数据的更新
POST /dangdang/books/2/_update
{
"doc":{
"price": 77
}
}
通过_id 脚本更新
POST /dangdang/books/2/_update
{
"script": "ctx._source.price+=11"
}
通过指定_id删除文档
DELETE /dangdang/books/Q-K0r4IBvMbAXC2VBLEs
通过查询条件更新文档
POST /dangdang/books/_update_by_query
{
"query":{
"term":{
"id":"002"
}
},
"script":"ctx._source.price=11;ctx._source.desc+=\"增加描述\""
}
批量操作的create用法
create文档时必须显式指定文档的_id, 否则会报错. 如果create的文档已存在, 则当前子操作会报错. 但是子操作报错并不前后操作中没有问题的操作
POST /dangdang/books/_bulk
{"create":{"_id":"11"}}
{"name":"namecreate","desc":"_id 必须被显式指定"}
{"create":{"_id":"11"}}
{"name":"namecreate2"}
{"create":{"_id":"22"}}
{"name":"namecreate22"}
terms匹配多个值
POST dangdang/books/_delete_by_query
{
"query":{
"terms":{
"_id":["11","22"]
}
}
}
通过多个_id匹配多个文档
POST dangdang/books/_delete_by_query
{
"query":{
"ids":{
"values":["11","22"]
}
}
}
模糊查询fuzzy
**fuzzy查询不会对搜索的关键词分词, 直接按照精确匹配的模式去查找索引字典. 不过fuzzy允许搜索的关键词有一定的偏差, 具体如下: **
- 搜索关键词长度为 2 不允许存在模糊 0
- 搜索关键词长度为3-5 允许一次模糊 0 1
- 搜索关键词长度大于5 允许最大2模糊
如索引中的字典有"少有人走的路", 那么通过"少有人走的", "少有人走的路", "少有人走的路x", "少有人走的路xx"都是可以匹配到该文档的. 因为3-5个关键词允许有1个偏差, 5个以上关键词允许最多两个偏差
GET /dangdang/books/_search
{
"query": {
"fuzzy": {
"name": "少有人走的路啊啊"
}
}
}
网友评论