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

23-Update by Query Reindex

DELETE blogs/

# 写入文档
PUT blogs/_doc/1
{
  "content":"Hadoop is cool",
  "keyword":"hadoop"
}

# 查看 Mapping
GET blogs/_mapping

# 修改 Mapping,增加子字段,使用英文分词器
PUT blogs/_mapping
{
      "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
            "english" : {
              "type" : "text",
              "analyzer":"english"
            }
          }
        }
      }
    }


# 写入文档
PUT blogs/_doc/2
{
  "content":"Elasticsearch rocks",
    "keyword":"elasticsearch"
}

# 查询新写入文档
POST blogs/_search
{
  "query": {
    "match": {
      "content.english": "Elasticsearch"
    }
  }

}

# 查询 Mapping 变更前写入的文档
POST blogs/_search
{
  "query": {
    "match": {
      "content.english": "Hadoop"
    }
  }
}


# Update所有文档
POST blogs/_update_by_query
{

}

# 查询之前写入的文档
POST blogs/_search
{
  "query": {
    "match": {
      "content.english": "Hadoop"
    }
  }
}


# 查询
GET blogs/_mapping

PUT blogs/_mapping
{
     "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
            "english" : {
              "type" : "text",
              "analyzer" : "english"
            }
          }
      },
      "keyword" : {
          "type" : "keyword"
        }
      }
}



DELETE blogs_fix

# 创建新的索引并且设定新的Mapping
PUT blogs_fix/
{
  "mappings": {
        "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
            "english" : {
              "type" : "text",
              "analyzer" : "english"
            }
          }
        },
        "keyword" : {
          "type" : "keyword"
        }
      }    
  }
}

# Reindx API
POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix"
  }
}

GET  blogs_fix/_doc/1

# 测试 Term Aggregation
POST blogs_fix/_search
{
  "size": 0,
  "aggs": {
    "blog_keyword": {
      "terms": {
        "field": "keyword",
        "size": 10
      }
    }
  }
}

  • external:当使用外部版本控制时,Elasticsearch将使用请求中提供的版本号来检查文档的版本。如果提供的版本号与文档当前的版本号匹配,文档将被更新;否则,请求将失败。
  • internal:当使用内部版本控制时,Elasticsearch将使用其内部生成的版本号来跟踪文档版本。每次更新文档时,版本号会自动递增。通过使用内部版本控制,可以确保版本号的正确管理,而不需要客户端显式提供版本号。
# 使用内部版本控制机制 ("internal versioning") 来处理文档版本管理
# Reindx API,version Type Internal
POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix",
    "version_type": "internal"
  }
}

# 文档版本号增加
GET  blogs_fix/_doc/1

# Reindx API,version Type Internal
POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix",
    "version_type": "external"
  }
}

conflicts:设置为 "proceed",表示当出现文档更新冲突时,Elasticsearch 将继续执行操作而不会中止

create:这意味着在重建索引过程中,只会创建目标索引中不存在的文档,如果文档已经存在则会导致失败

 conflicts:设置为 "proceed",表示当出现文档更新冲突时,Elasticsearch 将继续执行操作而不会中止
# Reindx API,version Type Internal
POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix",
    "version_type": "external"
  },
  "conflicts": "proceed"
}

# "create",这意味着在重建索引过程中,只会创建目标索引中不存在的文档,如果文档已经存在则会导致失败
# Reindx API,version Type Internal
POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix",
    "op_type": "create"
  }
}


GET _tasks?detailed=true&actions=*reindex

http://www.kler.cn/a/386808.html

相关文章:

  • Oracle 单机及 RAC 环境 db_files 参数修改
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • 微服务各组件整合
  • Ruby编程语言全景解析:从基础到进阶
  • 基于微信小程序的农场管理系统的设计与实现,LW+源码+讲解
  • Qt_day4_Qt_UI设计
  • cv::intersectConvexConvex返回其中一个输入点集,两个点集不相交
  • Windows 11 安装 MySQL 8.4 LTS 详细安装配置教程(入门篇)
  • linux基础——详细篇
  • React diff算法和Vue diff算法的主要区别
  • PICO+Unity MR视频透视
  • 分组校验在Spring中的应用详解
  • 九、Go语言快速入门之map
  • Leetcode刷题
  • 层出不穷的大模型产品,你怎么选?
  • 基于大语言模型的规划
  • 【Redis】缓存击穿与缓存雪崩:问题与解决方案
  • 网络原理(应用层)->HTTP
  • ArcGIS Pro SDK Addin-DAML
  • 十六 MyBatis使用PageHelper
  • 【韩老师零基础30天学会Java 】03章 变量
  • selenium大量并发连接驱动超时
  • sealos部署K8s,安装docker时master节点突然NotReady
  • # SpringCloud学习
  • 虚拟现实辅助工程技术如何加速汽车设计与制造
  • 接口类和抽象类在设计模式中的一些应用