一、基于Restful风格
基于这类风格涉及的软件可以更简洁,更有层次,更易于实现缓存等机制。
基本Rest命令说明:
二、索引的基本操作
- 创建一个索引:
PUT /索引名/类型名/文档id
{请求体}
这样就完成了索引和文档的自动增加,数据也成功添加。
- 字段自动指定类型,或者也手动设置类型。
- 创建时指定字段类型
- 通过GET _cat/indices?v查看所有索引库的信息。
- 删除索引,通过delete命令实现删除,根据你的请求来判断是删除索引还是文档记录!
三、文档的基本操作
- 添加文档记录
- 获取文档记录 get
- 更新文档记录
旧方法:PUT
新方法:POST _update 推荐使用! - 简单条件搜索
使用_seach?q=name:王老,根据默认的映射规则,产生基本的查询!
命中结果中的_score为匹配度,匹配度越高,分值越高,排越前! - 复杂条件搜索select(排序,分页,高亮,模糊,精准)
查询的参数体使用JSON结构!输出结果有匹配总数,最高匹配度等。
指定输出的字段:
针对某个字段进行排序:
分页查询:from:起始,size:查询总数
布尔查询:
must(即and),所有条件都要符合 where id=1 and name=xxx
should(即or),所有条件都要符合 where id = 1 or name = xx
must_not(即not),所有条件满足 where id is not null
过滤器filter,对数据进行过滤
gt:大于 gte:大于等于 lt:小于 lte:小于等于
匹配多个条件:
通过tags输入多个条件,用空格隔开。结果按照匹配度排序。
精确查询 :
**term查询:**直接通过倒排索引指定的词条进行精确查询!(完全匹配)
**match查询:**会使用分词器解析!(先分析文档,然后在通过分析的文档进行查询)
GET testdb/_search
{
"query":{
"term":{
"desc": "我喜欢吃冰淇淋"
}
}
}
多值匹配精确查询:
GET testdb/_search
{
"query":{
"bool":{
"should":[
{
"term":{
"desc": "我喜欢吃冰淇淋"
}
},
{
"term":{
"name": "我喜欢吃冰淇淋"
}
}
]
}
}
}
高亮查询:
GET testdb/user/_search
{
"query":{
"match":{
"desc": "我喜欢吃冰淇淋"
}
},
"highlight":{
"pre_tags":"<p class='key' style='color:red'>", 自定义高亮标签
"post_tags":"</p>",
"fields":{
"name":{}
}
}
}