ElasticSearch常用命令
一、索引(相当于数据库)
1、建立名为 "test" 的索引
PUT /test
2、删除索引
DELETE /test
二、建立映射
POST /test/product/_mapping?pretty { "product": { "properties": { "name": { "type": "keyword" }, "time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } }
1、product为索引类型,相当于数据库的表。
2、keyword 和 text 字段类型的区别:
1)keyword 不会被分词器解析,可用于精确查询。
2)text 会被解析,只用于模糊查询。
3)这两种类型都保存字符串类型。
三、查询
1、查询索引映射
查询名为 “test” 的映射
GET /test/_mapping
2、查询数据
1)模糊查询
① 这里“match”可以模糊查询,原理是会先对搜索词进行分词,比如“我爱苹果”,被分为“我”、“爱”、“苹果”..这种的,含有相关词汇的会被检索出来。
GET /test/product/_search { "query": { "match": { "name": "测试" } } }
② 如果不使用分词进行模糊查询,使用"match_phrase"进行查询。
③ 但是对于数字和字母,用match必须得提前手动分词,这时候我们可以选择“wildcard”查询,它采用通配符,真正地实现SQL中的LIKE。
{ "query": { "wildcard": { "field": "*value*" } } }
2)精确查询
“term”用来精确查询,下列例子中,字段值必须 == “轮播图”才能被检索出来。
GET /ggfw_es/ggfw_info/_search { "query": { "term": { "info_catalog": "轮播图" } } }
四、新增和修改
1、新增用POST
下边的"1"表示id。
POST /test/product/1 { "name": "法外狂徒张三", "time": "2022-2-2" }
2、修改用PUT
修改我就不多说了,就是把新增的POST改为PUT就行。需要注意的是使用修改方法,必须全部字段都带上,不然你只修改name子段,修改完你会发现time这个数据就没了。