ES 安装、search、index、doc

文章目录

    • 1. 安装
    • 2. search
    • 3. index
    • 4. doc CRUD
      • op_type
      • 获取 doc 元字段
      • 只获取 doc 源数据
      • 删除 doc
      • update doc

1. 安装

https://www.elastic.co/cn/

  • 下载
    https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-5-3
    https://www.elastic.co/cn/downloads/past-releases/kibana-8-5-3

  • 解压,点击 D:\elasticsearch-8.5.3\bin\elasticsearch.bat 启动后会报错

  • 修改配置 "D:\elasticsearch-8.5.3\config\elasticsearch.yml" 配置文件会多出来一些配置

学习环境下,全部改为false即可

# Enable security features
xpack.security.enabled: Falsexpack.security.enrollment.enabled: False# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: Falsekeystore.path: certs/http.p12# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: Falseverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12
  • 再重新启动 ES
    在浏览器输入 http://localhost:9200/
    看见 json,就算安装好了
    在这里插入图片描述

  • 点击 "D:\kibana-8.5.3\bin\kibana.bat"
    http://localhost:5601/app/dev_tools#/console

  • 测试

写入 doc

put product/_doc/1 
{"name": "apple","price": 5.6
}

返回

{"_index": "product","_id": "1","_version": 3,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 1
}

查询 doc

get /product/_doc/1

返回

{"_index": "product","_id": "1","_version": 3,"_seq_no": 2,"_primary_term": 1,"found": true,"_source": {"name": "apple","price": 5.6}
}

2. search

查看所有 index

get _cat/indices

从 index 中 from 第几个数据开始,size 个docs

GET kibana_sample_data_logs/_search?from=1&size=2

3. index

创建 index

PUT test_index
{"settings":{"number_of_shards": 1,"number_of_replicas": 1}
}

删除 index

DELETE test_index

创建完 index 后,主分片数量、index名、字段类型 不可以再修改

重新创建文档,只会带过来 doc,属性设置不会带过来

POST _reindex
{"source": {"index": "test_index"},"dest": {"index": "new_test_index"}
}

检查 index 是否存在

head new_test_index

4. doc CRUD

创建发生在 主分片(可读可写)

op_type

操作类型:

  • index:更新
  • create:只创建,不更新,如果存在相同doc报错
PUT test_index/_doc/1?op_type=create
{"name": "test1"
}

id 1 的 doc 已存在,create 报错

{"error": {"root_cause": [{"type": "version_conflict_engine_exception","reason": "[1]: version conflict, document already exists (current version [1])","index_uuid": "ntM1X5SOTxiz8tRVwdHK6g","shard": "0","index": "test_index"}],"type": "version_conflict_engine_exception","reason": "[1]: version conflict, document already exists (current version [1])","index_uuid": "ntM1X5SOTxiz8tRVwdHK6g","shard": "0","index": "test_index"},"status": 409
}

index 操作,替换 doc

PUT test_index/_doc/1?op_type=index
{"name": "test_new"
}
{"_index": "test_index","_id": "1","_version": 2,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 1,"_primary_term": 1
}

POST 可以自动生成 随机 id

POST test_index/_doc/
{"name": "test_new"
}
{"_index": "test_index","_id": "YrdpU4UBIo5EnYllVY0M","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 4,"_primary_term": 1
}

获取 doc 元字段

  • 获取 doc 元字段 _source=false(不返回 source),不写的话,默认为 true
GET test_index/_doc/1?_source=false
{"_index": "test_index","_id": "1","_version": 4,"_seq_no": 3,"_primary_term": 1,"found": true
}

只获取 doc 源数据

GET test_index/_source/1
{"name": "test_new"
}

删除 doc

DELETE test_index/_doc/5
{"_index": "test_index","_id": "5","_version": 1,"result": "not_found",  # id 5 的不存在"_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 6,"_primary_term": 1
}
{"_index": "test_index","_id": "1","_version": 1,"result": "deleted",  # id 1 的存在,删除掉了"_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 7,"_primary_term": 1
}

update doc

  • 更新 doc,更上面的 替换 是不一样的,更新可以只更新部分字段,其他字段保留

先添加一个 doc

POST test_index/_doc/1
{"name": "test_new","value": 99
}

再查询

GET test_index/_doc/1

更新部分字段

POST test_index/_update/1
{"doc": {"value": 100}
}

再查询

{"_index": "test_index","_id": "1","_version": 2,"_seq_no": 10,"_primary_term": 1,"found": true,"_source": {"name": "test_new","value": 100}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UWP开发入门(十一)——Attached Property的简单应用

UWP中的Attached Property即附加属性&#xff0c;在实际开发中是很常见的&#xff0c;比如Grid.Row: <Grid Background"{ThemeResource ApplicationPageBackgroundThemeBrush}"><Grid.RowDefinitions><RowDefinition></RowDefinition><Ro…

一、bootstrap4基础(布局系统、栅格系统、显示与隐藏、对齐与排列、内容排版、代码与图文、表格样式、颜色和边框、工具类)

1.1 Bootstrap简单介绍 1.2 Bootstrap结构 1.3 Bootstrap安装和测试 1.4 布局系统 1.5 栅格系统 4.6 栅格等级 1.7 显示与隐藏 1.7 对齐与排列 1.8 内容排版 1.9 代码与图文 1.9.1 设置图片居中显示 1.9.1 设置图片响应式显示 1.9.2 设置图片缩略图显示&#xff0c;以及显示的位…

二、bootstrap4基础(flex布局)

1.1 Flex弹性布局&#xff08;一&#xff09; <div class"d-flex flex-column border border-danger justify-content-end mb-5" style"height: 200px;"><div class"p-2 border border-success">one</div><div class"…

三、bootstrap4 组件(警告和提示框、徽章和面包屑、按钮按钮组、卡片、列表组、导航和选项卡、分页和进度条、巨幕和旋转图标、轮播图、折叠菜单、下拉菜单、导航条、滚动监听、轻量弹框、模态框、表单)

1.1 警告提示框 1.2 徽章和面包屑 1.3 按钮和按钮组 1.4 卡片 1.5 列表组 1.6 导航和选项卡 1.7 分页和进度条 1.8 巨幕和旋转图标 1.9 轮播图 1.10 折叠菜单 1.11 下拉菜单 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title&…

十三、axios框架学习

一、axios的基本使用 1.1 安装axios 执行命令&#xff1a;npm install axios --save 1.2 发送get请求演示 1.3 发送并发请求 有时候, 我们可能需求同时发送两个请求 使用axios.all, 可以放入多个请求的数组.axios.all([]) 返回的结果是一个数组&#xff0c;使用 axios.sp…

LeetCode解题汇总目录

此篇为学习完《数据结构与算法之美》后&#xff0c;在LeetCode刷题的汇总目录&#xff0c;方便大家查找&#xff08;CtrlFind&#xff09;&#xff0c;一起刷题&#xff0c;一起PK交流&#xff01;如果本文对你有帮助&#xff0c;可以给我点赞加油&#xff01; Updated on 2022…

一、node.js搭建最简单的服务器

node.js搭建最简单的服务器 代码演示&#xff1a; // 1. 加载http核心模块 var http require(http)// 2. 使用http.createServer()方法创建一个Web服务器 // 返回一个Server实例 var server http.createServer()// 3. 服务器干嘛&#xff1f; // 提供服务&#xff1a; 对数…

DDD 领域驱动设计-如何 DDD?

注&#xff1a;科比今天要退役了&#xff0c;我是 60 亿分之一&#xff0c;满腹怀念&#xff5e;??? 前几天看了园友的一篇文章《我眼中的领域驱动设计》&#xff0c;文中有段话直击痛点&#xff1a;有人误认为项目架构中加入 Repository&#xff0c;Domain&#xff0c;Valu…

二、搭建Apache服务器 模板引擎

1. 案例&#xff1a;搭建简单的Apache服务器 var http require(http) var fs require(fs)var server http.createServer()var wwwDir D:\\CWork\\node.js黑马程序员\\study_nodejs\\day02\\code\\wwwserver.on(request, function(req, res) {var url req.urlfs.readFile(…

三、案例:留言板 url.parse()

1. url.parse()的使用 2. 留言板案例 index.html: <!DOCTYPE html> <!-- saved from url(0027)http://192.168.150.76:3000/ --> <html lang"en"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8…

一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)

第 1 章&#xff1a;原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c; 最大的优势&#xff1a;无刷新获取数据。 AJAX 不是新的编程语言&#xff0c;而是…

App安全之网络传输安全

移动端App安全如果按CS结构来划分的话&#xff0c;主要涉及客户端本身数据安全&#xff0c;Client到Server网络传输的安全&#xff0c;客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中。 App代码安全&#xff0c;包括…

二、nodemon-Node.js 监控工具

nodemon-Node.js 监控工具 https://www.npmjs.com/package/nodemon 这个工具在我们改变了服务端代码时&#xff0c;会自动重启服务器&#xff0c;不需要我们再手动去重启服务器了&#xff0c;方面我们后面调试代码&#xff01; 1. 安装 node &#xff1a;http://nodejs.cn/d…

利用动态规划(DP)解决 Coin Change 问题

问题来源 这是Hackerrank上的一个比较有意思的问题&#xff0c;详见下面的链接&#xff1a; https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给定m个不同面额的硬币&#xff0c;C{c0, c1, c2…cm-1}&#xff0c;找到共有几种不同的组合可以使得数额为n的…

jquery datatable设置垂直滚动后,表头(th)错位问题

jquery datatable设置垂直滚动后&#xff0c;表头(th)错位问题 问题描述&#xff1a; 我在datatable里设置&#xff1a;”scrollY”: ‘300px’,垂直滚动属性后&#xff0c;表头的宽度就会错位&#xff0c;代码如下&#xff1a; <!-- HTML代码 --> <table id"dem…

三、解决ie缓存问题

解决 IE 缓存问题 问题&#xff1a;在一些浏览器中(IE),由于缓存机制的存在&#xff0c;ajax 只会发送的第一次请求&#xff0c;剩余多次请求不会在发送给浏览器而是直接加载缓存中的数据。 在谷歌浏览器中&#xff0c;修改了服务器代码&#xff0c;重新发送请求时&#xff0…

imageNamed和imageWithContentsOfFile-无法加载图片的问题

问题描述 图片资源放在Assets.xcassets中&#xff0c;分别用UIImage的类方法imageNamed和imageWithContentsOfFile获取图片对象&#xff0c;但发生奇怪的情况&#xff0c;前者获取到图片对象&#xff0c;后者结果为nil。代码如下&#xff1a; 1.通过UIImage的类方法imageNamed:…

LeetCode 309: 一个很清晰的DP解题思路

问题来源 题目来源链接见下方&#xff1a; https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/ 问题简述&#xff1a; 假如有一个 i 个元素的数组&#xff0c;数组的每个元素表示了第 i 天某只股票的价格&#xff0c;设计一种算法来…

五、手动取消ajax请求 解决重复发送请求问题

server.js: // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) > {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 设置响应体respo…