elasticsearch简单操作

通过postman操作elasticsearch版本为7.8.0

添加索引

http://127.0.0.1:9200/shopping  put方式
{
    "acknowledged": true,  //操作成功
    "shards_acknowledged": true,  分片成功
    "index": "shopping"  //索引名称
}

不能重复的创建索引

{
    "error": {
        "root_cause": [
            {
                "type": "resource_already_exists_exception",
                "reason": "index [shopping/Qxdn6w1BQMKFE-sFgnsgLA] already exists", //提示已经存在
                "index_uuid": "Qxdn6w1BQMKFE-sFgnsgLA",
                "index": "shopping"
            }
        ],
        "type": "resource_already_exists_exception",
        "reason": "index [shopping/Qxdn6w1BQMKFE-sFgnsgLA] already exists",
        "index_uuid": "Qxdn6w1BQMKFE-sFgnsgLA",
        "index": "shopping"
    },
    "status": 400
}

查看索引

http://127.0.0.1:9200/_cat/indices?v
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   shopping Qxdn6w1BQMKFE-sFgnsgLA   1   1          0            0       208b           208b
_cat  查看
indexs 索引
?v title

字段的含义


image.png

创建数据

127.0.0.1:9200/shopping/_doc   post请求
body
{
 "title":"小米手机",
 "category":"小米",
 "images":"http://www.gulixueyuan.com/xm.jpg",
 "price":3999.00
}
结果
{
    "_index": "shopping",  //索引
    "_type": "_doc",  //文档
    "_id": "84RmwIAB1y2B1Y7rWCvM", //创建数据id  /shopping/_doc/1 规定id
    "_version": 1,
    "result": "created", //创建成功
    "_shards": { //分片
        "total": 2,  //分片总数
        "successful": 1,  //成功一条
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 1
}
如果没有创建mapping(字段),直接创建数据,会根据数据传入值默认设置字段类型 
如果后续创建数据,添加新的字段, 查询映射关系可以看到新增加的字段,
老数据不会看到新的字段

查看单个索引状态

127.0.0.1:9200/shopping
结果
{
    "shopping": { //索引名称
        "aliases": {}, //别名
        "mappings": { //字段映射
            "properties": {
                "category": { //字段名称
                    "type": "text", //字段类型
                    "fields": {  
                        "keyword": {
                            "type": "keyword", //keyword代表查询的时候 不能分词,
                                                         //创建数据中多余的字段,会自动的创建映射
                                                         //该字段的类型同时为text类型和keyword
                            "ignore_above": 256 //如果长度256,会被存储,但是不会索引
                                                              //例 长度如果为2   存储 01 , 012  条件为01时 只能查询01 
                                                              //012不能查询 条件为 012 不会查询到012
                        }
                    }
                },
                "images": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                },
                "price": {
                    "type": "float"
                },
                "title": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
        },
        "settings": {
            "index": {
                "creation_date": "1652493495165",
                "number_of_shards": "1",   //主分片数量
                "number_of_replicas": "1", //副分片数量
                "uuid": "Qxdn6w1BQMKFE-sFgnsgLA", //索引唯一标识
                "version": { //索引版本
                    "created": "7080099"
                },
                "provided_name": "shopping" //索引名称
            }
        }
    }
}

查看文档

查看文档分两种通过id去查询,查看所有的文档,这里不包含高级查询
查看所有文档

127.0.0.1:9200/shopping/_search
{
    "took": 65,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,  //命中数量
            "relation": "eq"  // eq 表示计数准确, gte 表示计数不准确
        },
        "max_score": 1.0, //命中最大分数
        "hits": [ //结果集
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "84RmwIAB1y2B1Y7rWCvM",
                "_score": 1.0, //命中分钟 排序用
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00,
                    "name": "小米12"
                }
            }
        ]
    }
}

通过id查找

127.0.0.1:9200/shopping/_doc/1
{
    "_index": "shopping", 
    "_type": "_doc",
    "_id": "1",
    "_version": 1,
    "_seq_no": 1,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "title": "小米手机",
        "category": "小米",
        "images": "http://www.gulixueyuan.com/xm.jpg",
        "price": 3999.00,
        "name": "小米12"
    }
}

修改文档

修改文档和创建文档是一样的,修改需要提供id值,如果数据发生变化就会覆盖以前的数据  
127.0.0.1:9200/shopping/_doc/1   post请求
body
{
 "title":"小米手机",
 "category":"小米修改",
 "images":"http://www.gulixueyuan.com/xm.jpg",
 "price":3999.00
}
结果
{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 2, //版本号修改为2
    "result": "updated", //修改
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 2,
    "_primary_term": 1
}

修改局部数据

http://127.0.0.1:9200/shopping/_update/1 post请求 
body
{ 
 "doc": {
 "price":3000.00
 } 
}
结果
{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 3, //版本号变化
    "result": "updated",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 3,
    "_primary_term": 1
}

删除文档

文档的删除为逻辑删除
http://127.0.0.1:9200/shopping/_doc/1 delete请求
{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "_version": 4,
    "result": "deleted", //已删除
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 4,
    "_primary_term": 1
}
再次查询的时候
{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1",
    "found": false  //提示找不到
}

批量插入数据

127.0.0.1:9200/shopping/_doc/_bulk post请求
{"index": {"_id": "1"}}
{"title": "小米手机","category": "小米", "images": "http://www.gulixueyuan.com/xm.jpg","price": 4000.00}
{"index": {"_id": "2"}}
{"title": "华为手机","category": "华为","images": "http://www.gulixueyuan.com/xm.jpg","price": 4000.00}

注意header:Content-Type:application/json
image.png

条件删除文档

http://127.0.0.1:9200/shopping/_delete_by_query post请求
{
    "query": {
        "match": {
            "price": 4000.00 //删除price 为4000的数据
        }
    }
}

创建映射1

127.0.0.1:9200/student/_mapping put请求
{
    "properties": {
        "name": {
            "type": "text", //可以分词查询
            "index": true   //是否索引
        },
        "sex": {
            "type": "text",
            "index": false
        },
        "age": {
            "type": "long",
            "index": false
        }
    }
}
结果
{
    "acknowledged": true 成功
}
字段名:任意填写,下面指定许多属性,例如:title、subtitle、images、price
type:类型,Elasticsearch 中支持的数据类型非常丰富,说几个关键的:
     String 类型,又分两种:
         text:可分词
         keyword:不可分词,数据会作为完整字段进行匹配
     Numerical:数值类型,分两类
        基本数据类型:long、integer、short、byte、double、float、half_float
        浮点数的高精度类型:scaled_float
     Date:日期类型
     Array:数组类型
     Object:对象
     index:是否索引,默认为 true,也就是说你不进行任何配置,所有字段都会被索引。
            true:字段会被索引,则可以用来进行搜索
            false:字段不会被索引,不能用来搜索
     store:是否将数据进行独立存储,默认为 false
           原始的文本会存储在_source 里面,默认情况下其他提取出来的字段都不是独立存储 
           的,是从_source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置
           "store": true 即可,获取独立存储的字段要比从_source 中解析快得多,但是也会占用
           更多的空间,所以要根据实际业务需求来设置。
     analyzer:分词器,这里的 ik_max_word 即使用 ik 分词器,后面会学习

查看映射

127.0.0.1:9200/student/_mapping?pretty get请求
这里的返回值包括创建的映射和创建数据中的映射
例如 创建的映射只有name,创建数据的时候有name和sex,查询到的映射有name和sex,其中sex为默认的类型

创建映射2

http://127.0.0.1:9200/student1 put请求
body
{
    "settings": {},
    "mappings": { //请求路径中没有_mapping
        "properties": {
            "name": {
                "type": "text",
                "index": true
            },
            "sex": {
                "type": "text",
                "index": false
            },
            "age": {
                "type": "long",
                "index": false
            }
        }
    }
}

postman-json文件
git@gitee.com:zhangjijige/file.git
参考:尚硅谷-谷粒学院

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容

  • 创建一篇文档 现在,我们试图将小黑的小姨妈的个人信息录入elasticsearch。我们只要输入: PUT表示创建...
    梦梦_9f1a阅读 178评论 0 0
  • 最近在学习Elasticsearch,结合网上的视频和文档,对学到的东西做一些整理搬运,方便自己学习,也方便对此感...
    wilsonLwx阅读 259评论 0 0
  • 一、ES基本概念 1.1 索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合。一个索引由一个名字来标...
    CJ21阅读 2,348评论 2 21
  • 安装Elasticsearch 可以在https://www.elastic.co/cn/downloads/el...
    良辰美景TT阅读 1,786评论 0 1
  • ELK 介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kiban...
    doinb1517阅读 3,589评论 2 17