ES的基础操作

tech2024-05-24  76

#分词器 ik_max_word POST  _analyze {   "analyzer": "ik_max_word",   "text": "南京市长江大桥" }

#分词器 ik_smart POST  _analyze {   "analyzer": "ik_smart",   "text": "南京市长江大桥" }

###索引库操作

#创建索引库 put /ithe #查看索引库 get /ithe #删除索引库 delete /ithe #查看索引库 get /ithe

#需求1:创建type表 ##方式一:先建库,再建type #1.1建库 put /heima #查看是否建库成功 get /heima

#1.2创建type表 put /heima/_mapping/goods {   "properties":{     "title":{       "type":"text",       "analyzer":"ik_max_word"     },     "subtitle":{       "type":"text",       "analyzer":"ik_max_word"     },     "image":{       "type":"text",       "index":"false"     },     "price":{       "type":"float"     }   } }

# 查看是否创建成功 ## 方式一 get /heima/_mapping/goods ## 方式二 get /heima

##方式二:同步建库+建type put /heima2  {   "setting" : {},   "mappings" : {     "goods" : {       "properties" : {         "title" : {           "type" : "text",           "analyzer" : "ik_max_word"         },         "price":{           "type":"float"         }       }     }   } }

##查看是否创建成功 #方式一 get /heima2 #方式二 get /heima2/_mapping/goods

##需求2 :新增记录(不指定id) post /heima/goods {   "title":"xiaomi",   "image":"http://www.baidu.com",   "price":"1999" }

#查看 get /heima/goods post /heima/_search { "query":{   "match_all": {} }

}

##需求3 :新增记录(指定id) post /heima/goods/2 {   "title":"xiaomi2",   "image":"http://www.baidu.com",   "price":"2999" }

#查看 get /heima/goods/2 post /heima/_search { "query":{   "match_all": {} }

}

##需求4:修改记录(put:记录存在则修改,记录不存在则新增) put /heima/goods/3 {   "title":"xiaomi3",   "image":"http://www.baidu.com",   "price":"3999" }

#查看 #方式一 get /heima/goods/3 #方式二 post /heima/_search { "query":{   "match_all": {} }

}

#需求4:修改记录(put:记录存在则修改,记录不存在则新增) put /heima/goods/3 {   "title":"xiaomi33333",   "image":"http://www.baidu.com",   "price":"33333" }

#查看 #方式一 get /heima/goods/3 #方式二 post /heima/_search { "query":{   "match_all": {} }

}

#需求5:文档操作:删除 #查看 post /heima/_search {   "query":{     "match_all": {}   } } #需求5.1:根据ID删除 delete /heima/goods/3

#需求5.2:根据条件删除 post /heima/_delete_by_query {   "query":{     "match":{       "title": "xiaomi"     }   } } #需求5.3:删除所有

post /heima/_delete_by_query {   "query":{     "match_all":{}   } }

#准备工作:插入数据 POST /heima/goods/_bulk {"index":{}} {"title":"大米手机","images":"http://image.leyou.com/12479122.jpg","price":3288} {"index":{}} {"title":"小米手机","images":"http://image.leyou.com/12479122.jpg","price":2699} {"index":{}} {"title":"小米电视4A","images":"http://image.leyou.com/12479122.jpg","price":4288}

#查询所有 post /heima/_search {   "query":{     "match_all": {}   } }

#需求6:匹配查询 默认or post /heima/_search {     "query" : {         "match" : {             "title" : "小米电视4A"         }     } }

#需求7:匹配查询 and post /heima/_search {     "query" : {         "match" : {             "title" : {               "query": "小米电视4A",               "operator": "and"             }         }     } }

#需求8:多字段查询 #准备数据 POST /heima/goods {     "title": "华为手机",     "images": "http://image.leyou.com/12479122.jpg",     "price": 5288,     "subtitle": "小米" }

#查询 post /heima/_search {   "query" : {     "multi_match" : {       "query" : "小米",       "fields": ["title", "subtitle"]     }   } }

#需求9:单词条精确查询 post /heima/_search  {     "query" : {         "term" : {             "price" : 2699         }     } } #或者: post /heima/_search  {     "query" : {         "term" : {             "price" : {                 "value" : 2699             }         }     } }

#需求10:多词条查询 post /heima/_search  {     "query" : {         "terms" : {             "price" : [2699, 5288]         }     } }

#需求11:结果过滤(只显示需要的字段) #11.1  _source post /heima/_search {   "_source" : ["title", "price"],   "query" : {     "term" : {       "price" : 2699     }   } }

# post /heima/_search {   "_source" : ["title", "price"],   "query" : {     "match_all": {}   } }

#11.2 _source + includes post /heima/_search {   "_source" : {     "includes" : ["title", "price"]   },   "query" : {     "term" : {       "price" : 2699     }   } }

#11.3  _source + excludes post /heima/_search {   "_source" : {     "excludes" : ["image", "subtitle"]   },   "query" : {     "term" : {       "price" : 2699     }   } }

#需求12:高级查询:布尔组合 #目标:title=小米 且 title!=电视 post /heima/_search {   "query" : {     "bool" : {       "must" : {"match": {"title":"小米"}},       "must_not" : {"match":{"title":"电视"}}     }    } }

#需求13:范围查询 # 使用range 完成 3000<=价格 且 价格 < 5000的商品 post /heima/_search {   "query" : {     "range" : {       "price" : {         "gte" : 3000,         "lt" : 5000       }     }   } }

#需求14:模糊查询(fuzzy) #准备数据 POST /heima/goods/4 {     "title":"apple手机",     "images":"http://image.leyou.com/12479122.jpg",     "price":5899.00 }

#查询 post /heima/_search {   "query" : {     "fuzzy" : {       "title" : "appla"     }   } }

post /heima/_search {   "query" : {     "fuzzy" : {       "title" : {         "value" : "apple3",         "fuzziness": 2       }     }   } }

#需求15:单字段排序 post /heima/_search {   "query" : {     "match_all": {}   },   "sort" : {     "price" : "desc"   } }

#需求16:多字段排序 post /heima/_search {     "query" : {         "match_all" : {}     },     "sort" : [         {"price" : {"order": "desc"}},         {"_score" : {"order" : "desc"}}      ] }

###需求17:高亮 post /heima/_search {   "query" : {     "match" : {       "title" : "电视"     }   },   "highlight" : {     "pre_tags": "<font color='pink'>",     "post_tags": "</font>",     "fields": {       "title" : {}     }   } }

##需求18:分页 post /heima/_search {   "query" : {     "match_all": {}   },   "sort" : {     "price" : "desc"   },   "size" : 2,   "from" : 2 }

最新回复(0)