1 索引操作
1.1 创建索引
创建一个shopping的索引,put请求:http://127.0.0.1:9200/索引名
注意,只能用PUT请求,而不能用POST请求
若索引存在,继续添加,则会提示索引已存在
1.2 查询索引
查询一个索引,使用GET请求:http://127.0.0.1:9200/索引名
查询所有索引,使用GET请求:http://127.0.0.1:9200/_cat/indices?v
路径后面必须是-cat/indices?v
1.3 删除索引
删除一个索引,使用DELETE请求:http://127.0.0.1:9200/索引名
2 文档操作
2.1 创建文档
索引创建好后,就可以创建文档了,并添加数据,添加的数据格式为JSON格式
创建一个文档,发送POST请求:http://127.0.0.1:9200/索引名/_doc; _doc固定写法,不可修改,表示文档数据。
例如:http://127.0.0.1:9200/shopping/_doc
请求体内容为:
{
"title":"小米手机",
"category":"小米",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":3999.00
}
返回结果"_id"相当于创建文档数据的主键;_id由es自动随机生成;也可指定固定的id
例如:http://127.0.0.1:9200/shopping/_doc/1001 指定文档"_id"为1001
另外,当指定了文档的_id时,可以使用PUT请求进行文档的创建,若没有指定文档的_id,则只能使用POST请求。_doc也可以使用_create替代。
如:http://127.0.0.1:9200/shopping/_create/1003
2.2 查询文档
查询指定的文档信息,使用GET请求:http://127.0.0.1:9200/索引名/_doc/文档_id
如:http://127.0.0.1:9200/shopping/_doc/1001
_source表示查询到的文档数据结果集
查询所有的文档信息,http://127.0.0.1:9200/索引名/_search
_search表示查询所有的文档数据信息
2.3 修改文档
2.3.1 全量修改
全量修改也就是修改所有的数据信息;修改指定的文档数据,使用PUT请求:http://127.0.0.1:9200/索引名/_doc/文档_id
如:http://127.0.0.1:9200/shopping/_doc/1001
2.3.2 局部修改
局部修改使用POST请求:http://127.0.0.1:9200/索引名/_update/文档_id;并且明确是修改操作,将_doc替换成_update;
如:http://127.0.0.1:9200/shopping/_update/1001
修改局部信息的参数,格式必须如下:
{
"doc":{
"title":"华为手机"
}
}
2.4 删除文档
删除文档使用DELETE请求:http://127.0.0.1:9200/索引名/_doc/文档_id
如:http://127.0.0.1:9200/shopping/_doc/1001
2.5 条件查询
使用GET请求进行条件查询:http://127.0.0.1:9200/索引名/_search?q=category:小米
_search?q=固定写法,不能变,表示条件查询
如:http://127.0.0.1:9200/shopping/_search?q=category:小米
上述查询,查询参数是在url路径后面,也可以使用请求体进行查询;请求体格式是固定写法,如下:
{
"query":{
"match":{ #匹配字段进行查询
"category":"小米"
}
}
}
扩展:查询所有的索引文档信息,可以直接使用“http://127.0.0.1:9200/索引名/_search”方式进行查询,也可以使用body请求体进行查询。请求体格式如下
{
"query":{
"match_all":{ #匹配所有信息进行查询
// 里面必须为空
}
}
}
2.6 分页查询
分页查询,有两个关键字,一个是from代表当前的页数,另一个是size表示每页的条数。
格式如下:
{
"query":{
"match_all":{ #匹配所有信息进行查询
// 里面必须为空
}
},
"from": 0,
"size": 2
}
2.7 查询结果返回指定字段(数据)信息
es查询的结果可以指定所需要的相关数据字段,而不是返回全部数据字段。主要指定_source中的内容即可,格式如下:
{
"query":{
"match_all":{ #匹配所有信息进行查询
// 里面必须为空
}
},
"from": 0,
"size": 2,
"_source": ["title"]
}
2.8 排序
es可以对查询的结果进行排序,使用sort属性进行指定。格式如下:
{
"query":{
"match_all":{ #匹配所有信息进行查询
// 里面必须为空
}
},
"from": 0,
"size": 2,
"_source": ["title"],
"sort":{
"price":{
"order":"desc"
}
}
}