一个索引就是一个拥有几分相似特征的文档的集合,索引必须全部是小写字母的。
映射是定义一个文档和它所包含的字段如何被存储和索引的过程。
文档就是索引中存储的一条条数据。
通俗来理解就是:索引就是数据库中的表,而映射就是定义表时的约束(字段,类型等等),而文档就是表中的一条条数据。
#查询ES中的索引
GET _cat/indices?v
?
#创建索引
PUT /索引名=》PUT /product
?注意:ES中索引的健康状态:red(索引不可用)、yellow(可用,但存在风险)、green(健康),默认创建一个primary索引和备份索引,因为主备都在一台机器上,索引存在风险是yellow。
#创建一个green索引
PUT /orders
{
? "settings": {
? ? "number_of_shards": 1, #指定主分片的数量
? ? "number_of_replicas": 0, #指定副分片的数量
? }
}?
?
?#删除索引
DELETE /索引名=》DELETE /product
字符串类型:keyword(不分词)、text(分词)
数字类型:integer、long
小数类型:float、double
布尔类型:boolean
日期类型:date
#创建商品索引
#id,title,price,created_at,description
PUT /products
{
? "settings": {
? ? "number_of_shards": 1,?
? ? "number_of_replicas": 0
? },
? "mappings": {
? ? "properties": {
? ? ? ? "id":{
? ? ? ? ? "type":"integer"
? ? ? ? },
? ? ? ? "title":{
? ? ? ? ? "type":"keyword"
? ? ? ? },
? ? ? ? "price":{
? ? ? ? ? "type":"double"
? ? ? ? },
? ? ? ? "created_at":{
? ? ? ? ? "type":"date"
? ? ? ? },
? ? ? ? "description":{
? ? ? ? ? "type":"text"
? ? ? ? }
? ? }
? }
}?
?
GET /索引名 /_mapping =》GET /products/_mapping
?
注意:如果原来的文档id已经存在,那么就会删除原来的文档,再插入新的文档。
# 添加文档操作 手动指定_id
POST /products/_doc/1
{
? "id":1,
? "title":"瑞星咖啡",
? "price":"10.5",
? "created_at":"2024-11-28",
? "description":"和好喝"
}?
?# 添加文档操作 自动指定_id
POST /products/_doc/
{
? "title":"星巴克克",
? "price":"12.5",
? "created_at":"2024-11-18",
? "description":"不好喝"
}
?
GET /products/_doc/1?
DELETE /products/_doc/Dc-V6IwB9_tvl7L5kzja?
GET /products/_search
{
? "query": {
? ? "match_all": {}
? }
}?
POST /products/_doc/1/_update
{
? "doc":{
? ? "price":"16.4",
? ? "description":"很好喝"
? }
}?
必须在一行,不能换行!而且批量操作是不具备原子性的,如果出错了还会继续向下执行。
?