通过PsotMan给Elasticsearch的索引库创建映射和创建对应文档进行增删改查的操作
一、可以阅读完下面两篇博客再来阅读该文档
安装elasticsearch到linux服务器
安装es-header插件
1.给es常见映射
PUT 192.168.1.117:9200/index_mapping
{
"mappings": {
"properties": {
"realname": {
"type": "text", // String类型,会被分词
"index": true // 是否被索引,如果为true就会被索引,会被查询到,为false则不会被查询到
},
"username": {
"type": "keyword", // 关键字;如果根据这个字段进行查询必须是全名称,负责搜索不到对应内容
"index": false
}
}
}
}
2.创建成功后可以到es-head查询对应的映射是否存在
3.对字段分词进行分析
GET 192.168.1.117:9200/index_mapping/_analyze
一、realname字段进行分词解析,因为realname的类型为text,其内容在存入存入索引库会被分词(后面会将中文的分词)
输入:
{
"field": "realname",
"text": "capuda is very good"
}
输出
{
"tokens": [
{
"token": "capuda",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "is",
"start_offset": 7,
"end_offset": 9,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "very",
"start_offset": 10,
"end_offset": 14,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "good",
"start_offset": 15,
"end_offset": 19,
"type": "<ALPHANUM>",
"position": 3
}
]
}
二、username字段进行分词解析,因为username的类型为keyword,其内容不会被分词
输入
{
"field": "username",
"text": "capuda is very good"
}
输出
{
"tokens": [
{
"token": "capuda is very good",
"start_offset": 0,
"end_offset": 19,
"type": "word",
"position": 0
}
]
}
4.对es已经创建好的映射新增字段(已经创建好的字段类型就不能修改了,除非删了重新创建)
POST 192.168.1.117:9200/index_mapping/_mapping
{
"properties": {
"id": {
"type": "long"
},
"age": {
"type": "integer"
}
}
}
4.通过PostMan创建 es 的文档
POST 192.168.1.117:9200/my_doc/_doc/1
{
"id": "1001",
"name": "capuda-1",
"desc": "capuda is very good, 卡布达贼牛逼",
"create_date": "2020-12-11"
}
插入之后的数据可以到es-head的数据浏览中查看("_id"是该条数据在索引库中的id,"id"是该条数据自身的id,例如该条数据是从数据库中来的,这个id就是他在数据库中的id)
并且也会生成自动对应的映射信息
5.通过PostMan根据id删除 es 的文档(这里的删除是逻辑删除并未从磁盘中删除,只用当容量满了触发被动删除,这些数据才会被真正的删除)
DELETE 192.168.1.117:9200/my_doc/_doc/5
6.通过PostMan根据id修改 es 的文档内容
POST 192.168.1.117:9200/my_doc/_doc/3/_update // 如果不加 _update 就是全量修改
{
"doc": {
"name": "我是铁臂阿童木"
}
}
7.通过PostMan根据id查询 es 的文档内容
GET 192.168.1.117:9200/my_doc/_doc/1
8.通过PostMan查询 es 中所有文档的内容
GET 192.168.1.117:9200/my_doc/_doc/_search
8.通过PostMan根据Id查询 es 中文档的内容,定制返回的字段
GET 192.168.1.117:9200/my_doc/_doc/1?_source=id,name // 查询所有数据同理
{
"_index": "my_doc", // 索引库名称
"_type": "_doc", // 类型
"_id": "3", // 索引库中的Id,类似数据库中的主键Id
"_version": 1, // 数据被修改或者删除会累加 1
"_score": 1, // 查询出的数据和用户搜索的行为匹配度越高分数
"_source": {
"id": "1003",
"name": "capuda-3",
"desc": "capuda is very good, 卡布达贼牛逼",
"create_date": "2020-12-13"
}
}
9.查询某个文档是否存在,通过head的方式发送请求,如果我们只是想确认文档是否存在可以使用这种方式,因为他只返回状态码,比直接获取数据所占内存更小,所以他的速度也会更快
HEAD 192.168.1.117:9200/my_doc/_doc/1