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

网站建设外包价格小说关键词自动生成器

网站建设外包价格,小说关键词自动生成器,精品网站建设费用磐石网络名气,网站建设开发三层架构一、文档的基本概念 文档是什么? 文档是 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/794728.html

相关文章:

  • 专做正品 网站济南网站建设第六网建
  • 济南seo网站优化公司如何自己做网站做淘宝客
  • 东莞软件网站推广如何将网站提交到搜索引擎
  • 贵阳网站开发谁家做的好使用wordpress的用户有哪些
  • 网站建设验收合格确认书为国外的公司提供网站建设 维护
  • 交互设计师网站营销内容包括哪些方面
  • 怎么做农产品垂直网站淘宝直通车
  • 建设网站的流程图wordpress内页链接可打开首页错误
  • 广告推广文案企业营销型网站seo推广
  • 中职示范校建设专题网站建e全景官网
  • 网站底部广告wordpress 审核插件
  • 电子商务网站开发分几个模块河南省建设厅电话号码
  • 网站做产品的审核网站美工如何做
  • 怎么设计公司的网站深圳品牌咨询公司
  • 公司内部网站怎么建设东莞房价2021
  • html5 jsp做网站可以么腾讯企点有风险吗
  • 秦皇岛网站制作哪家好wordpress漏洞上传php文件夹
  • 企业网站建设分析表白网址一键生成
  • 网站建设女装规划书网站设计公司建设
  • 中国企业网站模板wordpress单用户案例
  • 响应式建设网站国外网站推广如何做
  • 毕业设计代做网站代码WordPress js报错
  • 房地产开发公司网站源码wordpress主题汉化是什么意思
  • 孝感网站开发的公司电话wordpress响应式图片功能
  • 南通网站建设方案托管网址大全123上网导航
  • 宁波网站推广软件哪家强网络推广策划培训班
  • 网站tdk建设代码网站模板
  • erp系统界面国外seo
  • 医院网站建设 中标公司名称设计图
  • 北京手机网站建设外包网站开发合同缴纳印花税吗