关于索引的基本操作
1 | PUT /索引名/~类型名~/文档id |
完成了自动增加索引!数据也成功的添加了
指定字段的类型
1 | PUT /test2 |
创建规则
可以通过GET请求获取具体信息
查看默认信息
如果自己的文档字段没有指定,那么es会给我们默认配置字段类型!
扩展:通过命令elasticsearch索引情况!
通过GET _cat/ 可以获得es当前的很多信息!
更新方法
以前的方法
现在的方法
删除索引
通过DELETE命令删除、根据你的请求来判断是删除索引还是删除文档记录!
使用RESTFUL风格是ES推荐大家使用的!
关于文档的基本操作(重点)
基本操作
添加数据
1
2
3
4
5
6
7PUT /kuangshen/user/2
{
"name": "张三",
"age": 20,
"desc": "法外狂徒张三",
"tags": ["旅游","温暖","渣男"]
}获取数据 GET
1
GET /kuangshen/user/1
更新数据 PUT
POST _update
PUT如果不传递值就会被覆盖,
POST灵活度更高简单的搜索
1
GET /kuangshen/user/1
简单的条件查询,可以根据默认的映射规则,产生基本的查询!
1
GET /kuangshen/user/_search?q=name:狂神说java
复杂操作搜索
select(排序,分页,高亮,模糊查询,精准查询!)
hits:
索引和文档的信息
查询的结果总数
然后就是查询出来的具体的文档
数据中心的所有东西都可以遍历出来了
分数:我们可以通过分数来判断谁更加符合搜索结果
输出结果,只需要指定的字段
之后Java操作es,所有的方法和对象就是这里面的key!
排序
分页查询
数据下标还是从0开始的,和学的所有的数据结构是一样的!
/search/{current}/{pagesize}
布尔值查询
must(and),所有的条件都要符合 where id = 1 and name = xxx
多条件查询
should(or),所有的条件都要符合 where id = 1 or name = xxx
must_not (not)
过滤器 filter
匹配多个条件
term查询是直接通过倒排索引指定的词条进行精确的查找!
关于分词
- term,直接查询精确的
- match,会使用分词器解析!(先分析文档,然后再通过分析的文档进行查询!)
两个类型 text keyword
keyword 字段类型不会被分词器解析
多个值匹配的精确查询
高亮查询
自定义搜索高亮条件
这些MySQL也能做,只是MySQL效率比较低!
- 匹配
- 按照条件匹配
- 精确匹配
- 区间范围匹配
- 区间字段匹配
- 多条件查询
- 高亮查询