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

华侨城网站开发制作网站教程

华侨城网站开发,制作网站教程,楼宇网站建设,wordpress更改wp文件夹一、文档的基本概念 文档是什么? 文档是 Elasticsearch 中存储数据的基本单元,格式为 JSON。每个文档包含多个字段(Field),字段可以是各种数据类型,如文本、数字、日期等。文档存储在索引中,索…

一、文档的基本概念

  • 文档是什么?
    • 文档是 Elasticsearch 中存储数据的基本单元,格式为 JSON。
    • 每个文档包含多个字段(Field),字段可以是各种数据类型,如文本、数字、日期等。
    • 文档存储在索引中,索引是文档的集合。
  • 文档的唯一标识
    • 每个文档都有一个唯一的文档 ID,用于标识该文档。
    • 文档 ID 可以由用户指定,也可以由 Elasticsearch 自动生成。
  • 文档的结构
    • 文档是一个 JSON 对象,包含多个键值对(Key-Value Pairs)。
    • 示例:
      {"_index": "my_index","_type": "_doc","_id": "1","_version": 1,"_score": 1.0,"_source": {"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "Elasticsearch is a distributed, RESTful search and analytics engine."}
      }
      

二、文档的组成部分

  • 字段(Field)
    • 字段是文档中的基本数据单元,类似于关系型数据库中的“列”。
    • 每个字段有一个名称和一个值,值可以是各种数据类型。
    • 常见的字段类型:
      • text:全文搜索字段,支持分词。
      • keyword:精确匹配字段,不支持分词。
      • date:日期字段。
      • long, integer, short, byte, double, float:数值类型字段。
      • boolean:布尔类型字段。
      • object:嵌套对象字段。
      • nested:嵌套类型字段(用于数组中的对象)。
  • 元数据字段(Metadata Fields)
    • Elasticsearch 为每个文档自动添加一些元数据字段,用于管理文档。
    • 常见的元数据字段:
      • _index:文档所属的索引名称。
      • _type:文档的类型(在 Elasticsearch 7.x 及以后版本中,默认为 _doc)。
      • _id:文档的唯一标识符。
      • _version:文档的版本号,用于乐观并发控制。
      • _source:文档的原始 JSON 数据。

三、文档的操作

  1. 索引文档

    • 使用 POST 或 PUT 请求向索引中添加文档。
      • 如果指定文档 ID,使用 PUT 请求:
        PUT /my_index/_doc/1
        {"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "Elasticsearch is a distributed, RESTful search and analytics engine."
        }
        
      • 如果不指定文档 ID,使用 POST 请求,Elasticsearch 会自动生成文档 ID:
        POST /my_index/_doc/
        {"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "Elasticsearch is a distributed, RESTful search and analytics engine."
        }
        
  2. 查询文档

    • 使用 GET 请求根据文档 ID 查询文档:
      GET /my_index/_doc/1
      
    • 使用查询 DSL 搜索文档:
      GET /my_index/_search
      {"query": {"match": {"title": "Elasticsearch"}}
      }
      
  3. 更新文档

    • 使用 POST 或 PUT 请求更新文档:
      • 部分更新:
        部分更新使用POST,只会修改对应字段的值。
        POST /my_index/_update/1
        {"doc": {"content": "Elasticsearch is a powerful search and analytics engine."}
        }
        
      • 全量更新:
        全量更新使用PUT,会先删除旧文档,再添加新文档。如果旧文档不存在,则直接添加新文档。
        PUT /my_index/_doc/1
        {"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "Elasticsearch is a powerful search and analytics engine."
        }
        
  4. 删除文档

    • 使用 DELETE 请求删除文档:
      DELETE /my_index/_doc/1
      
  5. 批量操作

    • Elasticsearch 提供了批量 API,可以一次性执行多个索引、更新、删除操作。
      POST /_bulk
      { "index" : { "_index" : "my_index", "_id" : "1" } }
      { "title": "Elasticsearch Guide", "author": "John Doe" }
      { "delete" : { "_index" : "my_index", "_id" : "2" } }
      { "update" : { "_index" : "my_index", "_id" : "3" } }
      { "doc" : { "content": "Updated content" } }
      

四、文档的版本控制

Elasticsearch 使用版本号(_version)来实现乐观并发控制。每次更新文档时,版本号会自动递增。可以通过指定版本号来确保更新操作的安全性。

  • 版本号(_version)
    • 每个文档都有一个版本号,用于乐观并发控制。
    • 当文档被更新时,版本号会自动递增。
    • 可以通过指定版本号来确保文档的更新操作是基于最新版本。
  • 乐观并发控制
    • 在更新文档时,可以指定版本号以确保操作的原子性。
    • 示例:
      PUT /my_index/_doc/1?version=2
      {"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "Updated content with version control."
      }
      

五、文档的存储和检索

  1. _source 字段
    • _source 字段存储文档的原始 JSON 数据。
    • 在查询文档时,默认会返回 _source 字段。
    • 可以通过设置 _source 参数来控制返回的字段:
    GET /my_index/_doc/1?_source=title,date
    
  2. 存储字段(Stored Fields)
    • 除了 _source 字段,Elasticsearch 还可以将某些字段单独存储,以便快速检索。
    • 在映射中定义字段时,可以设置 store 参数:
      "mappings": {
      "properties": {"title": {"type": "text","store": true}}
      }
      

六、文档的动态映射

  • Elasticsearch 支持动态映射,即在索引文档时自动推断字段类型。
  • 可以通过设置 dynamic 参数来控制动态映射的行为:
    • true:自动添加新字段(默认)。
    • false:忽略新字段。
    • strict:遇到未定义的字段时抛出异常。
  • 示例:
    "mappings": {"dynamic": "strict","properties": {"title": { "type": "text" }}
    }
    

七、文档的路由

在分布式环境中,Elasticsearch 使用路由(Routing)来确定文档存储在哪个分片上。默认情况下,路由值等于文档 ID,但可以自定义路由值以优化查询性能。

PUT /my_index/_doc/1?routing=user123
{"title": "Elasticsearch Guide","author": "John Doe","published_date": "2023-10-01","content": "This document is routed using a custom value."
}

八、文档的生命周期管理

Elasticsearch 中的文档生命周期管理(Document Lifecycle Management)是指对文档从创建到删除的整个生命周期进行管理和优化的过程。随着数据量的增长和业务需求的变化,文档的生命周期管理变得尤为重要。Elasticsearch 提供了多种工具和功能来帮助用户有效地管理文档的生命周期,包括索引生命周期管理(ILM)、快照和恢复、以及数据保留策略等。

8.1 索引生命周期管理(Index Lifecycle Management, ILM)

索引生命周期管理(ILM)是 Elasticsearch 提供的一种自动化管理索引生命周期的功能。ILM 允许用户定义索引在不同阶段(如热、温、冷、删除)的策略,并自动执行这些策略。ILM 的主要目标是优化存储和查询性能,同时降低存储成本。

  1. ILM 的主要阶段
    ILM 将索引的生命周期分为四个主要阶段:
    • Hot(热阶段):索引处于活跃状态,频繁写入和查询。通常使用高性能的硬件来支持高吞吐量和低延迟。
    • Warm(温阶段):索引不再频繁写入,但仍需要支持查询。通常使用较低性能的硬件来降低成本。
    • Cold(冷阶段):索引很少被查询,主要用于归档。通常使用低成本存储介质。
    • Delete(删除阶段):索引不再需要,可以安全删除。
  2. ILM 策略配置
    ILM 策略定义了索引在不同阶段的行为和转换条件。用户可以通过 Kibana 或 Elasticsearch API 来创建和管理 ILM 策略。
    • 示例:
    PUT _ilm/policy/my_policy
    {"policy": {"phases": {"hot": {"min_age": "0ms","actions": {"rollover": {"max_size": "50gb","max_age": "30d"},"set_priority": {"priority": 100}}},"warm": {"min_age": "30d","actions": {"forcemerge": {"max_num_segments": 1},"shrink": {"number_of_shards": 1},"allocate": {"number_of_replicas": 1},"set_priority": {"priority": 50}}},"cold": {"min_age": "60d","actions": {"allocate": {"require": {"data": "cold"}}}},"delete": {"min_age": "90d","actions": {"delete": {}}}}}
    }
    
  3. ILM 策略应用
    创建 ILM 策略后,可以将其应用到索引模板或现有索引上。
    • 应用到索引模板:
      PUT _template/my_template
      {"index_patterns": ["my_index-*"],"settings": {"index.lifecycle.name": "my_policy","index.lifecycle.rollover_alias": "my_index"}
      }
      
    • 应用到现有索引:
      PUT my_index-000001/_settings
      {"index.lifecycle.name": "my_policy","index.lifecycle.rollover_alias": "my_index"
      }
      
8.2 快照和恢复(Snapshot and Restore)

快照和恢复功能允许用户创建索引的快照,并将其存储在远程仓库中。快照可以用于备份和恢复数据,以及在灾难恢复时使用。

  1. 创建快照仓库
    首先需要创建一个快照仓库,用于存储快照。
    PUT _snapshot/my_backup
    {"type": "fs","settings": {"location": "/mnt/backups/my_backup"}
    }
    
  2. 创建快照
    可以使用以下命令创建索引的快照。
    PUT _snapshot/my_backup/snapshot_1
    {"indices": "my_index-*","ignore_unavailable": true,"include_global_state": false
    }
    
  3. 恢复快照
    可以使用以下命令从快照中恢复索引。
    POST _snapshot/my_backup/snapshot_1/_restore
    {"indices": "my_index-*","ignore_unavailable": true,"include_global_state": false
    }
    
8.3 数据保留策略

数据保留策略是指根据业务需求和数据重要性,确定数据的存储期限和删除时间。Elasticsearch 提供了多种方式来实现数据保留策略,包括使用 ILM 的删除阶段、定时任务(Curator)等。

  1. 使用 ILM 删除阶段
    在 ILM 策略中,可以配置删除阶段来自动删除旧索引。
    "delete": {"min_age": "90d","actions": {"delete": {}}
    }
    
  2. 使用 Curator
    Elasticsearch Curator 是一个命令行工具,用于管理索引和快照。可以使用 Curator 来定义和执行数据保留策略。
    actions:1:action: delete_indicesdescription: "Delete indices older than 90 days"options:ignore_empty_list: Truetimeout_override:continue_if_exception: Falsedisable_action: Falsefilters:- filtertype: patternkind: prefixvalue: my_index-- filtertype: agesource: creation_datedirection: olderunit: daysunit_count: 90```
    
http://www.dtcms.com/wzjs/114054.html

相关文章:

  • javaee就是做网站的吗百度引擎入口
  • 提供做网站费用手机关键词seo排名优化
  • 桐乡哪里有做网站的软文平台有哪些
  • 电子业网站建设广州网络营销的推广
  • 重庆当地网站热狗网站关键词优化
  • 淄博网站建设讲解透彻国内免费建站平台
  • php网站开发概念google优化师
  • 自己制作的网站怎么发布seo网站内容优化有哪些
  • 陪聊公众号开发seo搜狗
  • 哈密seoseo网站监测
  • 网站丢失了怎么找回来宁波公司做网站
  • 校园网站的建设与管理每日财经要闻
  • 如何修改用织梦做的网站的模板百度关键词搜索量排行
  • 营销型网站功能无人区在线观看高清1080
  • 数字营销1+x网站武汉关键词seo排名
  • 有没有做衣服的网站百度联盟注册
  • 国外做兼职网站深圳网络推广营销
  • 自己做坑人网站的软件免费网站推广优化
  • 做app护肤网站公司网站制作网络公司
  • 前端开发就是做网站吗vi设计
  • wordpress 用户登录ip记录北京网站优化企业
  • asp.net网站打不开html页面外贸建站平台
  • 成都网站建设 培训班广州市运营推广公司
  • 最新网站开发软件推广引流平台
  • 职业生涯规划用什么网站做测试市场调研报告内容
  • bitget wallet官方网站下载深圳经济最新新闻
  • 设计一个网站先做哪些构造郑州网站制作工具
  • 哪里网站做的好佛山网站优化软件
  • 室内设计师招聘简章青岛网络工程优化
  • 做维修注册网站网站设计公司模板