赞
踩
非常重要
)Rest风格一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。 它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
基于Rest命令说明
method | url地址 | 描述 |
---|---|---|
PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) |
POST | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) |
POST | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 |
DELETE | localhost:9200/索引名称/类型名称/文档id | 删除文档 |
GET | localhost:9200/索引名称/类型名称/文档id | 查询文档通过文档id |
POST | localhost:9200/索引名称/类型名称/_search | 查询所有数据 |
PUT /索引名/类型名/文档id(数据)
{
请求体
}
下图执行信息显示:
_index:索引名
_type:类型名
_id:文档id
完成了自动增加了索引!,数据也成功的添加了,这就是学习初期把它理解为数据库的原因。
类型分类 | 字段类型 |
---|---|
字符串 | text、keyword |
数值 | long、integer、short、byte、double、float、half、scaled、float |
日期 | date |
布尔值 | boolean |
二进制 | binary |
… | … |
下图是创建索引,定义数据的类型
mappings: 定义个类型
properties:自定属性
通过命令查看elasticsearch索引情况,通过get _cat可以获得ES当前很多信息
post
/索引/文档/数据库/_update
post
修改可以实现部分修改delete
索引 //直接删除整个索引
delete
/索引名称/类型名称/文档id 删除索引下的某一个文档
PUT /ceshi/user/1 { "name" : "款神说", "age": 23, "desc":"易擦偶偶你世纪东方流口水京东方", "tags":["技术宅","温暖", "直男"] } PUT /ceshi/user/2 { "name" : "张三", "age": 23, "desc":"法外", "tags":["游戏","交友"] } PUT /ceshi/user/3 { "name" : "历史", "age": 23, "desc":"爱笑", "tags":["机车","交友"] }
PUT /ceshi/user/1
{
"name": "王五"
}
POST /ceshi/user/1/_update
{
"doc": { //这块需要指定为doc
"name" : "孙悟空"
}
}
POST /ceshi/user/_search?q=age:23
POST /ceshi/user/_search?q=name:张三
GET /ceshi/user/_search?q=name:张三
name类型是keyword,整体搜索
复杂操作搜索select(排序、分页、高亮、模糊查询、精准查询)
score 值越高匹配程度越大
模糊查询
GET /ceshi/user/_search
{
"query": {
"match": {
"name": "张三"
}
}
}
Hits对应Java中的hit对象
hit中由索引和文档的信息、查询的结果总数、然后就是查询出来的具体的文档,数据中的东西都可以遍历出来。分数:可以判断更加符合预期的结果
筛选指定字段
GET /ceshi/user/_search
{
"query": {
"match": {
"name": "张三"
}
},
"_source": ["name","age"] //筛选指定字段
}
GET /ceshi/user/_search { "query": { "match": { "name": "张三" } }, "_source": ["name","age"], "sort": [ { "_id": { //filed修改为指定字段 "order": "asc" //排序方式为desc或者asc } } ] }
GET /ceshi/user/_search { "query": { "match": { "name": "张三" } }, "_source": ["name", "age"] ,"sort": [ { "_id": { "order": "desc" } } ] ,"from": 0 //分页从0开始 ,"size": 2 //每页大小为2 }
中文使用ik分词器
term 解析
PUT testdb { "mappings": { "properties": { "name": { "type": "text" }, "desc": { "type": "keyword" } } } } PUT testdb/_doc/1 { "name":"狂神说Java name", "desc": "狂神说Java desc" } PUT testdb/_doc/2 { "name":"狂神说Java name", "desc": "狂神说Java desc2" } GET _analyze { "analyzer": "keyword" ,"text":"狂神说Java name" } GET _analyze { "analyzer": "standard", "text": "狂神说Java name" } GET testdb/_search { "query": { "term": { "name": { "value": "狂" } } } } GET testdb/_search { "query": { "term": { "desc" : { "value": "狂神说Java desc" } } } } GET testdb/_search { "query": { "term": { "desc" : "狂神说Java desc" } } } GET testdb/_search { "query": { "match": { "name": "狂 " } } } GET testdb/_search { "query": { "match": { "desc": "狂神说Java desc" } } }
在自定义高亮标签
这些其实mysql也可以,但是比较慢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。