栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch中文社区(elasticsearch最新版本)

elasticsearch中文社区(elasticsearch最新版本)

es7-3.2 restApi

一、elasticSearch7-3.2 restApi

1、自动建库的方式2、 手动建库(推荐)3、增删改查4、常用数据类型5、GET6、DELETe7、UPDATE8、复杂查询

一、elasticSearch7-3.2 restApi 1、自动建库的方式
PUT /索引名/_doc/文档id
文档内容 json 串

这种方式虽然方便, 但是在后面进行term索引的时候, 会有一定的问题. 
因为这种默认的方式, 并不会进行ik分词
可以通过 GET /lisen 来看一下索引库结构:

 
2、 手动建库(推荐) 
#建表语句, img, price 都是默认的, title进行了ik分词处理, 否则在查询的时候, 对中文不是很支持
PUT /jd_goods
{
  "mappings": {
    "properties" : {
        "img" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "price" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "title" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        }
      }
  }
}
3、增删改查
#PUT    索引名/_doc/文档id    创建文档-指定id
#POST   索引名/_doc     创建文档-随机id
#POST   索引名/_update/文档id   修改文档
#DELETE 索引名/_doc/文档id     删除文档
#GET    索引名/_doc/文档id     通过id获取文档
#POST   索引名/_search    查询所有数据
4、常用数据类型
#字符串类型  text  keyword
#数值类型 long integer short byte double float, half float, scaled float
#日期类型 data
#布尔类型 boolean
#二进制类型  binary
PUT /lisen/_doc/1
{
  "name":"elvin",
  "age": 29,
  "work": "java软件开发工程师",
  "hobby":["篮球", "羽毛球", "乒乓球", "游泳"],
  "desc": "一个喜欢运动, 爱老婆的boy"
}

PUT /lisen/_doc/2
{
  "name":"john",
  "age": 27,
  "work": "前端开发工程师",
  "hobby":["骑电瓶车", "羽毛球"],
  "desc": "一个很刚的帅小伙"
}

PUT /lisen/_doc/3
{
  "name":"sury",
  "age": 35,
  "work": "测试工程师",
  "hobby":["带娃", "乒乓球"],
  "desc": "一个很有想法的小伙"
}

PUT /lisen/_doc/4
{
  "name":"主公",
  "age": 35,
  "work": "测试工程师",
  "hobby":["带饭", "游泳"],
  "desc": "一个摇摆不定的小伙"
}
5、GET
GET /库名 
可以获取建库信息

GET /库名/_doc/文档id
根据文档id获取信息, 相当于 select * from 库名 where id = #{id}

6、DELETe
DELETE /库名
直接删索引库, 删除之后, 再 get 就回报错

get/

DELETE /库名/_doc/文档id
根据文档id进行删除

7、UPDATE
1) PUT方式修改 - 全量修改
2) POST方式修改 - 可以全量, 也可以非全量

PUT /库名/_doc/文档id
PUT 在 restFull 里面代表两个意思: add 和 update, 当没有id时, 新增, 当有id时修改
在这里, 也是一样的. 当有指定的id时, 修改, 当没有指定的id时, 新增这是一种全量修改方式

POST /库名/_doc/文档id
这也是一种全量方式, 结果和 PUT 是一样的. 同样的, post也可以新增数据.

POST /库名/_update/文档id
非全量方式, 他只有修改的功能, 没有新增文档的功能

如果只有全量方式, 那岂不是很不方便. 

8、复杂查询
复杂查询可以实现 分页, 排序, 高亮, 模糊查询, 精确查询
查询有两种方式, 一种是拼参的方式, 另一种是 GET /库名/_search{} 的方式

GET /库名/_search
#_source显示那些列
可以直接写数组, 如:  ["name", "age", "work", "hobby", "desc"]
还可以设置 includes 和 excludes, 如:

#sort 排序
对字段进行排序, 如:
"_source": 
  {
    "includes": ["name", "age", "work", "hobby", "desc"],
    "excludes": ["work", "hobby"]
  }

"sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
分页
#from 相当于pageNo
#size 相当于pageSize, 默认20

将上面组合起来, 查询看看:

sc"],
“excludes”: [“work”, “hobby”]
}

“sort”: [
{
“age”: {
“order”: “desc”
}
}
]

~~~java
分页
#from 相当于pageNo
#size 相当于pageSize, 默认20

将上面组合起来, 查询看看:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号