01.基本测试
1.1 测试分词功能
1 | GET /* ## 获取所有数据 |
1.2 测试添加数据
1 | PUT test1/type1/1 |
02.商品文档的基础操作(CRUD)
2.1 新增商品
- 标准语法
1 | put /index/type/id |
- 添加第一条数据
1 | put /goods/fruit/1 |
- 添加第二条数据
1 | put /goods/fruit/2 |
- 其中 goods表示要创建的索引名称(数据库),fruit表示要创建的数据类别(表),1表示插入的数据的主键,这里需要明确一个概念就是倒排索引
2.2查询商品
标准语法:
GET /index /type/id
2.2 查询一条数据
- 标准语法:
1 | # GET /index /type/id |
- 测试查询
1 | # GET /goods/fruit/1 |
2.3 修改商品
- 标准语法
1 | # POST /index/type/id/_update |
- 测试修改
1 | # POST /goods/fruit/1/_update |
- 可以同时修改多条属性的值,值与值之间用”,”号间隔,还有一种非主流的写法也是可以的
2.4 删除操作
- 标准语法:
1 | # DELETE /index/type/id |
03.es查询操作
3.1 全部查询
- 标准语法:
1 | # GET /index/type/_search |
-
查询结果说明
- took:耗费了几毫秒
- timed_out:是否超时,这里是没有
- _shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard
- hits.total:查询结果的数量,多少个document
- hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
- hits.hits:包含了匹配搜索的document的详细数据
-
查询结果
1 | { |
3.2 条件查询
- name=xiangjiao的
1 | # 方法1 |
3.3 按条件查询和排序
- 查询 name=pingguo 使用价格进行正向排序
1 | GET goods/fruit/_search |
3.4 分页查询
- 注意: 这里的检索结果是倒排索引,不是按照id排序的,是按照倒排的方式来进行检索的,再强调下,不是根据id排序
- 每页显示两条数据
1 | GET /goods/fruit/_search |
3.5 只显示指定字段
- 检索出来的内容也就只包含了name和price字段的内容
1 | GET /goods/fruit/_search |
3.6 多条件匹配查询
- 查询 name=xiangjiao 并且 price=25
1 | GET /goods/fruit/_search |
- 查询 name=xiangjiao 或者 price=45
1 | GET /goods/fruit/_search |
3.7 过滤查询
-
注意:filter于must/must_not/should是并列关系,同属于bool的子属性
-
lt:小于, lte:小于等于, gt:大于, gte:大于等于
-
查询
name=xiangjiao 或者 价格在 10~40
之间的水果
1 | GET /goods/fruit/_search |
3.8 全文检索
- 查询 name=pingguo 或者 name=xiangjiao的
1 | GET /goods/fruit/_search |
__END__