文章目录
前言
ElasticSearch学习笔记(一)倒排索引、ES和Kibana安装、索引操作
3 文档操作
3.1 新增文档
语法:
POST /{
索引库名}/_doc/{
文档id}
{
"字段1": "值1",
"字段2": "值2",
"字段3": {
"子属性1":"值3",
"子属性2":"值4"
}
// ...
}
3.2 查询文档
语法:
GET /{
索引库名}/_doc/{
文档id}
3.3 修改文档
3.3.1 全量修改
全量修改是覆盖原来的文档,其本质是先根据指定的id删除文档(id对应的文档不存在也可以),再新增一个相同id的文档。
语法:
PUT /{
索引库名}/_doc/{
文档id}
{
"字段1": "值1",
"字段2": "值2",
"字段3": {
"子属性1":"值3",
"子属性2":"值4"
}
// ...
}
3.3.2 增量修改
增量修改是只修改指定id匹配的文档中的部分字段。
语法:
POST /{
索引库名}/_update/{
文档id}
{
"doc": {
"修养修改的字段": "新值"
}
}
3.4 删除文档
语法:
DELETE /{
索引库名}/_doc/{
文档id}
4 RestAPI
ES官方提供了各种不同语言的客户端用来操作ES,这些客户端的本质是组装DSL语句,通过Http请求发送给ES。其官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html
其中Java语言的客户端分为两种:
本文章学习的是high-level REST client。
4.1 创建数据库和表
CREATE DATABASE hsgx;
USE hsgx;
CREATE TABLE tb_hotel (
`id` BIGINT(20) NOT NULL PRIMARY KEY COMMENT '酒店id',
`name` VARCHAR(255) NOT NULL COMMENT '酒店名称',
`address` VARCHAR(255) NOT NULL COMMENT '酒店地址',
`price` INT(10) NOT NULL COMMENT '酒店价格',
`score` INT(2) NOT NULL COMMENT '酒店评分',
`brand` VARCHAR(32) NOT NULL COMMENT '酒店品牌',
`city` VARCHAR(32) NOT NULL COMMENT '所在城市',
`star_name` VARCHAR(16) NOT NULL COMMENT '酒店星级',
`business` VARCHAR(255) NOT NULL COMMENT '商圈',
`latitude` VARCHAR(32) NOT NULL COMMENT '纬度',
`longitude` VARCHAR(32) NOT NULL COMMENT '经度',
`pic` VARCHAR(255) DEFAULT