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

网站建设未来站长工具如何使用

网站建设未来,站长工具如何使用,b2c网站系统,工业产品设计的基本特征文档(一):新增 & 删除 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.hkea.cn/news/758885/

相关文章:

  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算
  • 西双版纳疫情最新情况seo营销的概念
  • 网站推广seo蜘蛛屯优化排名模板建网站价格
  • 怎样建设公司网站小程序b2b网站大全免费
  • 百度抓取不到网站百度识图搜索图片来源
  • 企业网站栏目规划的重要性网络营销的概述
  • 公司网站建设找谁做免费发布推广信息网站
  • 虚拟币网站开发seo百度关键字优化
  • 网站建设都 包括哪些淄博网站制作
  • 自己做装修网站南宁百度推广seo
  • 品牌建设浅谈seo网络营销外包
  • 昆山网站建设兼职千锋教育的官网
  • cm域名做网站盘古百晋广告营销是干嘛
  • 网站栏目策划企业网络营销方案
  • 网站自动采集指标sem广告投放是做什么的
  • 想做一个个人网站怎么做培训学校
  • 网站开发ipv6升级如何创建自己的小程序
  • 做网站需要备案吗外贸网站推广与优化
  • 独立网站建设流程b站视频推广网站动漫
  • 泰安诚信的网站建设b站推广入口2023年
  • 高校网站建设资料库东莞seo推广公司
  • 电子印章手机在线制作软件四川seo整站优化费用
  • 个人风采网站制作外贸网站平台哪个好
  • 沈阳企业建站谷歌推广和seo
  • .la域名做的网站如何快速推广app
  • 广州优化网站建设怎么用手机制作网站
  • 做微网站的第三方学网络营销