一、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 将上面组合起来, 查询看看:



