创建索引
PUT http://es服务器:9200/索引名称
使用put方法具有幂等性,也就是只能创建一次,第二次报错
创建文档
POST http://es服务器:9200/索引名称/_doc
POST http://es服务器:9200/索引名称/_doc/文档id
POST http://es服务器:9200/索引名称/_create post body: 文档内容(json格式)如:
{"name":"lisi","age":"12"}
获取文档
GET http://es服务器:9200/索引名称/_doc /文档id
搜索文档
GET http://es服务器:9200/索引名称/_search/文档id
修改文档(覆盖)
PUT http://es服务器:9200/索引名称/_doc /文档id
put body: 文档内容(json格式)如:
{"name":"lisi","age":"12"}
修改文档(局部更新)
POST http://es服务器:9200/索引名称/_update/文档id
body: 文档内容(json格式)如:
{doc:{"name":"zhangsan"}}
删除文档
PUT http://es服务器:9200/索引名称/_doc /文档id
多条件查询
GET http://es服务器:9200/索引名称/_search
{
"query": {
"bool": {
"must": [ //must表示and ,必须同时满足
{
//match_phrase 完整匹配,匹配的值必须完整一致
//match_all 匹配所有,一般用于全量查询
"match": { //匹配查询(全文检索)
"title": "Paris 2023" //默认添加文档的时候回进行分词处理,所有部分内容也可以匹配
}
}
],
"filter": [ //根据查询后的结果进行过滤
{
"range": {
"selling_price_min": {
"gte": 0.01,
"lte": 100
}
}
}
]
}
},
"from": 0, //分页offset
"size": 20, //分页size
"_source": ["id","title","selling_price_min","selling_price_max","selling_price"], //提取字段
"sort": [ //排序
{
"id.keyword": {
"order": "desc"
}
}
],
//高亮显示查询的字段,本质就是对查询的结果加em标签,如: "Sticker | MOUZ <em>Paris 2023</em>"
"highlight": {
"fields": {
"title": {}
}
},
}
聚合查询
{
"size": 0, //不需要查询字段数据设置为0
"aggs": { //聚合关键字
"price_group": { //组名,自定义
"terms": { //分组统计,聚合条件,如:avg,sum,terms等
"field": "selling_price_min.keyword" //分组字段
}
}
}
}
设置查询字段的规则
PUT user/_mapping
{
"properties":{
"name":{ //字段名称
"type":"text", //字段类型为文本,可以进行分词,全文检索
"index":true //进行索引,这样就可以进行查询
},
"sex":{
"type":"keyword", //字段类型为关键字,必须完整匹配
"index":true
},
"tel":{
"type":"text",
"index":false //不进行索引,这样就不可以查询
}
}
}