命令模式的使用
Rest风格说明
一种软件架构风格,而不是标准。更易于实现缓存等机制
基础测试
1.创建一个索引
PUT /索引名/类型名(高版本都不写了,都是_doc)/文档id
{请求体}
2、可以通过GET请求获得具体的信息
3、如果自己不设置文档字段类型,那么es会自动给默认类型
修改索引
1、修改我们可以还是用原来的PUT的命令,根据id来修改
但是如果没有填写的字段 会重置为空了
2、还有一种update方法 这种不设置某些值 数据不会丢失
删除索引
1、关于删除索引或者文档的操作
通过DELETE命令实现删除,根据你的请求来判断是删除索引还是删除文档记录
cat命令
1、获取健康值
2、获取所有的信息
GET _cat/indices?v
关于文档的基本操作
查询
最简单的搜索是GET、搜索功能search
这边name是text 所以做了分词的查询 如果是keyword就不会分词搜索了
复杂操作搜索select
1、基础查询
2、查询的基础上结果过滤
3、查询基础上排序
4、查询的基础上分页
多条件查询
1、must(and),所有的条件都要符合
2、should(or)或者的 跟数据库一样
3、must_not(not)
4、条件区间
gt大于
gte大于等于
lte小于
lte小于等于
5、匹配多个条件(数组)
精确查找
term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇
关于分词(keyword不会被分词)
- term,直接查询精确的
- match,会使用分词器解析!(先分析文档,然后通过分析的文档进行查询)
最简单的一个match例子:
查询和"我的宝马多少马力"这个查询语句匹配的文档。
{
"query": {
"match": {
"content" : {
"query" : "我的宝马多少马力"
}
}
}
}
上面的查询匹配就会进行分词,比如"宝马多少马力"会被分词为"宝马 多少 马力", 所有有关"宝马 多少 马力",
那么所有包含这三个词中的一个或多个的文档就会被搜索出来。
1、精确查询多个值
高亮
自定义高亮的样式