ES 【2】mapping 增删改查;字段类型:text,keyword;内置分词器

本文档详细介绍了如何使用 Elasticsearch 进行索引创建、映射定义、文档的基本操作,包括添加、删除、修改和查询。强调了 text 和 keyword 类型的区别,并解释了如何进行字段分词。同时,提到了乐观锁的概念以及内置的分词器如 standard 和 keyword 的功能。通过对索引内容的管理和文档操作,有助于理解 Elasticsearch 数据管理的核心流程。
摘要由CSDN通过智能技术生成

目录

创建索引的同时创建 mappings

对索引内容进行分词

对现有索引 mapping 内容修改

文档基本操作

添加文档数据

删除文档数据

 修改文档数据

查询文档数据



ES 的 mapping 就是相当于 数据库字段的类型。

数据库中字段有的是  varchar , int 。同理 ES 中也需要设置。

创建索引的同时创建 mappings


put    http://ip:9200/index_name

{
    "mappings": {
        "properties": {
            "realname": {
                "type": "text",
                "index": true
                        },
            "username": {
                "type": "keyword",
                "index": false
                        }
        }
    }
}

text: 大的长文本,需要做分词,做倒排索引

keyword: 不会被分词,也不会被做倒排索引。做精确匹配的搜索(比如订单状态,用的微信号,qq号,手机号)

text , keyword 都是属于string类型。

text: 大的长文本,需要做分词,做倒排索引

keyword: 不会被分词,也不会被做倒排索引。做精确匹配的搜索(比如订单状态,用的微信号,qq号,手机号)

text , keyword 都是属于string类型。

index:默认true,设置为false的话,那么这个字段就不会被索引

对索引内容进行分词

对现有索引 mapping 内容修改

 增加  index_name 的 mapping 字段。

  long,byte,float,short,integer,boolean,date,text,object(可以再放过对象进去)

post   http://192.168.1.160:9200/index_name/_mapping

{
        "properties": {
            "id": {
                "type": "long"
                        },
            "age": {
                "type": "integer"
                        }
        }
 }

文档基本操作

添加文档数据

1. 先创建好 index         2. 然后post 请求。

POST   http:192.168.1.160:9200/index_name/_doc/1

/1 是这个文档的id 

{
    "id":1001,
    "name":"jack",
    "desc":"描述内容123",
    "create_date":"2020-01-22"
}

删除文档数据

DELETE   http:192.168.1.160:9200/index_name/_doc/1

 修改文档数据

POST    http:192.168.1.160:9200/index_name/_doc/1/_update

请求数据:
{
  "doc":
  { 
    "merchantId": "2757002" ,
    "name":"jack"
  }
}

查询文档数据

GET    http:192.168.1.160:9200/index_name/_doc/1

GET    http:192.168.1.160:9200/index_name/_doc/_search    查询所有

GET    http:192.168.1.160:9200/index_name/_doc/1?_source=id,name   只查询除特定的字段

HEAD  http:192.168.1.160:9200/index_name/_doc/1    查询这条数据是否存在。返回值为空,根据http状态码来判断。200表示存在。404 NOT FOUND 表示不存在


文档乐观锁

根据 版本号 来做判断。  

每一次文档根据, 元数据 _version 都会 +1 。

“_seq_no” 也会自增

“primary_term” 表示这条数据再分片的位置

乐观锁更新,需要_seq_no  和 primary_term 与库里的数据一致,才能更新

POST    http:192.168.1.160:9200/index_name/_doc/1?if_seq_no=30&if_primary_term=1

ES 内置分词器

  • standard:默认分词,单词会被拆分,大小会转换为小写。
  • simple:按照非字母分词。大写转为小写。
  • whitespace:按照空格分词。忽略大小写。 s
  • top:去除无意义单词,比如 the / a / an / is …
  • keyword:不做分词。把整个文本作为一个单独的关键词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值