当前位置: 首页 > news >正文

江阴响应式网站建设网站加载慢图片做延时加载有用

江阴响应式网站建设,网站加载慢图片做延时加载有用,有创意的食品包装设计,青岛新闻最新消息文档(一):新增 & 删除 1.文档的关键特性2.新增文档2.1 指定 ID 新增文档2.2 不指定 ID 新增文档2.3 指定索引批量插入数据2.4 批量执行多种操作2.5 关键说明 3.删除文档3.1 删除单个文档3.2 批量文档删除3.2.1 方法 1:使用 _b…

文档(一):新增 & 删除

  • 1.文档的关键特性
  • 2.新增文档
    • 2.1 指定 ID 新增文档
    • 2.2 不指定 ID 新增文档
    • 2.3 指定索引批量插入数据
    • 2.4 批量执行多种操作
    • 2.5 关键说明
  • 3.删除文档
    • 3.1 删除单个文档
    • 3.2 批量文档删除
      • 3.2.1 方法 1:使用 _bulk 删除多个指定 ID 的文档
      • 3.2.2 方法 2:使用 _delete_by_query 删除符合查询条件的文档
      • 3.2.3 关键区别
    • 3.3 最佳实践

在 Elasticsearch 中,文档Document)是 最小的可索引数据单元,也是信息存储和检索的基本单位。它是 Elasticsearch 的核心概念之一,类似于关系型数据库中的一行记录或 NoSQL 数据库中的一个 JSON 对象。

1.文档的关键特性

  • JSON 格式:文档是一个 JSON 对象,由键值对(字段和值)组成。例如:

    {"_index": "books",         // 所属索引"_id": "1",               // 文档ID"_source": {              // 文档原始内容"title": "Elasticsearch 指南","author": "John Doe","publish_date": "2023-10-01"}
    }
    
  • 唯一标识:每个文档有一个唯一的 _id(可自定义或由 Elasticsearch 自动生成),用于在索引中唯一标识该文档。

  • 归属于索引:文档必须存储在某个 索引Index)中(类似关系型数据库的 “”)。例如,一个书籍文档可能存储在 books 索引中。

  • 可扩展字段:文档的字段是动态的,无需预先定义结构(除非使用显式映射)。字段类型(如文本、数字、日期等)会自动推断或通过映射(Mapping)指定。

  • 支持嵌套和复杂结构:文档可以包含嵌套对象、数组等复杂结构。例如:

    {"user": {"name": "Alice","address": {"city": "Beijing","postcode": "100000"}}
    }
    

2.新增文档

2.1 指定 ID 新增文档

场景:明确指定文档的 _id(如书籍 ISBN 作为唯一标识)。

PUT /books/_doc/101  # 索引名: books, 文档ID: 101
{"title": "深入理解 Elasticsearch","author": "张三","price": 59.9,"publish_date": "2023-05-20"
}

在这里插入图片描述

2.2 不指定 ID 新增文档

场景:让 Elasticsearch 自动生成唯一 _id(如日志场景)。

POST /logs/_doc  # 索引名: logs, 不提供ID
{"level": "ERROR","message": "数据库连接超时","timestamp": "2023-10-25T14:30:00Z"
}

在这里插入图片描述

2.3 指定索引批量插入数据

场景:一次性插入多条文档到同一索引(如商品批量导入)。

POST /products/_bulk
{ "index": {} }  # 不指定ID,自动生成
{ "name": "无线鼠标", "price": 99, "category": "电子产品" }
{ "index": { "_id": "1001" } }  # 指定ID为1001
{ "name": "机械键盘", "price": 299, "category": "电子产品" }

在这里插入图片描述

2.4 批量执行多种操作

场景:混合插入、更新、删除操作(如订单系统数据处理)。

POST /orders/_bulk
{ "index": { "_id": "O20230999" } }  # 新增订单
{ "order_id": "O20230999", "amount": 1500, "status": "paid" }
{ "index": { "_id": "O20230998" } }  # 新增订单
{ "order_id": "O20230998", "amount": 1500, "status": "paid" }
POST /orders/_bulk
{ "index": { "_id": "O20231001" } }  # 新增订单
{ "order_id": "O20231001", "amount": 1500, "status": "paid" }
{ "update": { "_id": "O20230999" } }  # 更新订单状态
{ "doc": { "status": "shipped" } }
{ "delete": { "_id": "O20230998" } }  # 删除订单

在这里插入图片描述

2.5 关键说明

  • 批量操作(_bulk
    • 每两行为一个操作:首行声明动作(index / update / delete),次行为数据或参数。
    • 需确保 JSON 格式严格换行(末尾换行符不可省略)。
  • 自动生成 ID
    • 不指定 _id 时,Elasticsearch 会生成类似 x5F6Z4wB3Kp2YvE1 的唯一字符串。
  • HTTP 方法
    • 新增单条文档:PUT(指定 ID)或 POST(不指定 ID)。
    • 批量操作:POST /_bulk

实际应用中,建议使用 Elasticsearch 客户端(如 Python 的 elasticsearch-py)简化操作。

3.删除文档

3.1 删除单个文档

场景:删除指定 _id 的文档(例如删除某本书)。

DELETE /books/_doc/101  # 删除索引 `books` 中 `_id=101` 的文档

响应

{"_index": "books","_id": "101","_version": 2,  # 版本号递增"result": "deleted",  # 删除成功"_shards": {"total": 2,"successful": 2,"failed": 0}
}

说明

  • 如果文档不存在,返回 "result": "not_found"
  • 删除操作是 逻辑删除(文档不会立即从磁盘移除,而是在后续段合并时清理)。

3.2 批量文档删除

场景:批量删除符合特定条件的文档(例如删除所有 status="expired" 的订单)。

3.2.1 方法 1:使用 _bulk 删除多个指定 ID 的文档

POST /orders/_bulk
{ "delete": { "_id": "O20231001" } }  
{ "delete": { "_id": "O20231002" } }  
{ "delete": { "_id": "O20231003" } }  

响应

{"took": 10,"errors": false,"items": [{ "delete": { "_id": "O20231001", "status": 200 } },{ "delete": { "_id": "O20231002", "status": 200 } },{ "delete": { "_id": "O20231003", "status": 200 } }]
}

3.2.2 方法 2:使用 _delete_by_query 删除符合查询条件的文档

POST /orders/_delete_by_query
{"query": { "term": { "status": "expired" }  # 删除所有 status=expired 的文档}
}

响应

{"took": 100,"timed_out": false,"total": 5,  # 共删除5条"deleted": 5,"batches": 1
}

说明

  • _delete_by_query 适用于 按条件删除,但会触发索引刷新,可能影响性能。
  • 大数据量删除时,建议添加 "conflicts": "proceed" 参数(跳过冲突)和 "scroll_size": 1000(分批处理)。

3.2.3 关键区别

操作类型适用场景性能影响
单条删除(DELETE精确删除指定 _id 的文档低开销,但多次调用效率低
批量删除(_bulk删除多个已知 _id 的文档网络和 I/O 优化,高效
条件删除(_delete_by_query删除符合查询条件的文档触发查询和刷新,大数据量时较慢

3.3 最佳实践

  • 优先使用 _bulk:批量删除已知 ID 的文档时,_bulk 比单条删除快 10-100 倍。
  • 慎用 _delete_by_query:大数据量删除时,建议在低峰期执行,或使用 slices 并行化:
    POST /orders/_delete_by_query?conflicts=proceed&slices=5
    {"query": { "range": { "create_time": { "lte": "2023-01-01" } } }
    }
    
  • 强制物理删除:删除后执行 _forcemerge 清理磁盘空间:
    POST /orders/_forcemerge?only_expunge_deletes=true
    
http://www.15wanjia.com/news/158562.html

相关文章:

  • 建站免费建站平台建设厅试验员考试报名网站
  • 怎么制作wap网站整站seo排名费用价格
  • 南京企业自助建站网站设计建设
  • 域名查询注册官网孝感网站seo
  • 织梦二次开发手机网站电商网站建设与运营方向
  • 网站怎么加入百度网盟网站开发作业代做
  • 流量对于网站盈利郑州做营销型网站
  • 怎么查看网站啥系统做的wordpress播放器mu38
  • 在线搭建网站佛山建站公司模板
  • 网站开发如何引用函数大淘客cms网站怎么做
  • 网站制作九江网络方案分析
  • 谷歌网站的主要内容wordpress怎么做seo关键词
  • 阿里巴巴网站分类板块做全屏多页网站模板
  • 基于php旅游网站的毕业设计中国建设银行北京市互联网网站
  • 成都有哪些做网站的云应用开发
  • 网站流量下跌wordpress显示全英文
  • 自己有域名怎么建网站南宁建设局
  • h5互动的网站专业做网站安全的sine安
  • 网站设计计费安徽亳州建设厅网站
  • 温岭手机网站建设网页设计培训南京
  • 怎么样从头开始做网站学生求职网站的需求分析怎么做
  • 贵州最好的网站建设推广公司哪家好重庆市建设考试报名网站
  • 优化网站视频城市分类信息网站系统
  • 做企业网站的费用挂什么科目三亚人才招聘网站
  • 商丘做网站需要多少钱网络推广这个工作好做吗
  • 织梦建站和WordPress建站的优缺点域名备案是什么
  • 中原区建设局网站网站策划与建设阶段的推广的目标
  • 加急网站备案豆各庄做网站的公司
  • 软件开发外包公司的设计一般多少钱梅州seo
  • 奥地利网站后缀网站建设业务需求文档