记录 ES 使用分页查询的几种方式
摘自:https://cloud.tencent.com/developer/article/2110964 ES 支持的三种分页查询方式 From + Size 查询 Search After 查询 Scroll 遍历查询 「说明:」 官方已经不再推荐采用Scroll API进行深度分页。如果遇到超过 10000 的深度分页,推荐采用search_after + PIT。 官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.14/paginate-search-results.html。 分布式系统中的深度分页问题为什么分布式存储系统中对深度分页支持都不怎么友好呢? 首先我们看一下分布式存储系统中分页查询的过程。 假设在一个有 4 个主分片的索引中搜索,每页返回10条记录。 当我们请求结果的第1页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 40 个结果排序得到全部结果的前 10 个。 当我们请求第 99 页(结果从 990 到 10...
记录 Docker 集群部署 ES 7.x
三台机器 192.168.56.105 192.168.56.106 192.168.56.107 前置准备(防止 JVM 报错)12345sysctl -w vm.max_map_count=262144#只是测试,所以临时修改,永久修改使用下面echo vm.max_map_count=262144 >> /etc/sysctl.confsysctl -p es-node1 1234567891011121314151617181920212223242526272829# 集群名称,相同名称为一个集群cluster.name: elasticsearch-cluster# 节点名称,集群模式下每个节点名称唯一node.name: es-node1# 监听地址,用于访问该es,0.0.0.0代表不限制network.host: 0.0.0.0# 表示这个节点是否可以充当主节点node.master: true# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)network.publish_host: ...
分词搜索需求整理
背景 项目使用nodejs开发 数据使用nodejieba+pinyin进行分词处理 现需要将这里的逻辑放到es处理 目标 搜索框搜索的内容包含了三个字段: 品牌, 主机厂, 车型, 用于搜索的search_key字段使用${品牌} ${主机厂} ${车型}格式存储数据 全中文关键词查询: 一汽奥迪 -> 奥迪 一汽大众(奥迪) 100 全英文(拼音)或者英文(拼音)加数字: cg k1 -> 成功 成功汽车 K1 中文带英文(拼音)或者数字: 福特进口 bir -> 福特 福特(进口) Thunderbird [雷鸟] 安装分词器(ik,pinyin) 参考站内es中的各种分词器 配置字典表及热更新 参考站内ik分词器自定义词库热更新 keyword.dic 123恒润荣放... 索引配置创建索引配置如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...
ES 分享会:从倒排索引到生产实践
ES 分享一. 建立倒排索引的认识 倒排索引是一种索引方法,用来存储全文搜索下某个单词在文档中的位置映射。 以古诗问答为例来理解倒排索引: 问:说出带"前"字的古诗词 问:背一下李白的《静夜思》—— 窗前明月光,疑是地上霜 背诗的方式:按书中排列顺序,先记诗名再记内容 具象化到关系库模型: 在脑子中形成的索引是这样的: 建立了 name 的索引后,根据 name 找 content 就会很快(SELECT * FROM 古诗 WHERE name = '静夜思'),但反过来查包含某字的诗就变成全表扫描(SELECT name FROM 古诗 WHERE content LIKE '%前%')。 如果以"前"字作为索引,则可以解决这个问题: 但整首 20 字的古诗每个字都适合做索引,光唐诗就有 5 万多首,全部建索引不现实。由于已经可以通过诗名回忆整首诗,所以只需索引到诗名即可: 多首诗的情况: 以上就是倒排索引的入门讲解。 补充: ES 默认对全部字段建立索引,如古诗表中 ...
Windows 共享文件夹
首先需要启用Guest用户,一般默认是禁用的,按下Win+R打开运行窗口,输入lusrmgr.msc命令,回车,打开本地用户和组(本地) 右键Guest用户,打开属性,把“账户已禁用”前边的勾去掉,点击应用,确定。如果有必要,可右键Guest,点击设置密码(有时访问必须得有密码才行,此时也可不用设置,等需要的时候再设置也行)。此时账户就没有问题了,接下来共享文件夹。 右键需要共享的文件夹,打开属性,切换到共享界面,点击“共享”按钮。 点击“添加”按钮前边的下拉框,选中Guest账户,点击添加按钮,此时Guest用户就出现在了共享用户列表中,然后根据自己需求,在权限级别一栏选择对应选取即可,我这里选择的是读取和写入。然后点击下边的“共享”按钮,共享结束后,点击“完成”按钮。 点击“高级共享”按钮,然后点击下方的“权限”按钮 在权限界面,选中Everyone用户,点击删除(请注意,这里设置的权限,也是正常系统用户访问该文件夹的权限,如果非必要或者不清楚,那就不要删除了),然后点击“添加”按钮。 在“输入对象名称”下边输入Guest...
Nexus3 配置 Docker
安装nexus3 docker 123456789101112131415161718192021mkdir -p /usr/local/nexus3chown -R 200 /usr/local/nexus3docker run -d \--privileged=true \--name=nexus3 \-u root \-p 8081:8081 \# 这几个端口给docker私有仓库使用,故在需要使用 Docker 的机器上修改 `/etc/docker/daemon.json`:{"insecure-registries": ["你的服务器IP:8001", "你的服务器IP:8002", "你的服务器IP:8003"]}-p 8001:8001 \-p 8002:8002 \-p 8003:8003 \# 启动容器时加入时间挂载,使用宿主机时间-v /etc/localtime:/etc/localtime:ro \-v /usr/share/zoneinfo/Asia/...
Trivy 容器安全扫描完全指南:安装、使用与 CI/CD 集成
概述Trivy(tri 发音为 trigger,vy 发音为 envy)是一个简单而全面的安全扫描器,专注于容器和其他工件的漏洞/错误配置检测。 核心特点: 🔍 简单易用,只需安装二进制文件即可开始扫描 🛡️ 全面检测操作系统和语言包漏洞 ⚙️ 支持基础设施即代码(IaC)配置检测 🚀 适用于 CI/CD 流程集成 官方资源: 📖 官方文档 💻 GitHub 仓库 核心功能检测类型Trivy 检测两种主要的安全问题: 类型 说明 示例 漏洞 软件或操作系统中的缺陷、弱点 CVE 漏洞、过时的依赖包 配置错误 部署配置中的安全隐患 IaC 文件中的不安全配置 扫描目标Trivy 可以扫描三种不同的工件: 容器镜像: 📦 Docker 镜像 🔍 检测系统包和应用依赖漏洞 ✅ 支持多种镜像仓库 文件系统: 💾 主机文件系统 🖥️ 虚拟机镜像 📂 解压的容器文件系统 Git 存储库: 🔗 远程 Git 仓库 📁 本地代码库 🔍 IaC 文件扫描 运行模式Trivy 支持两种运行模式: 模式 适...
在 Windows 中安装极狐 GitLab Runner(解决 Host key verification failed)
摘自:https://blog.csdn.net/chqaz123/article/details/131029045 在运行runner的机子上,配置SSH密钥123git config --global user.name "输入你的用户名"git config --global user.email "输入你的邮箱"ssh-keygen -t rsa -C "邮箱名称" 该过程禁止设置密码 复制用户目录下id_rsa.pub的内容 将该数据填入GitLab配置公钥置处 下载GitLab Runner 下载GitLab Runner二进制文件,新建一个文件夹(不要有中文),并将二进制文件放入该文件夹,重命名为“gitlab-runner.exe” 执行部署安装指令如果代码没有子模块 直接开始运行runner,切记使用管理员权限 12.\gitlab-runner.exe install.\gitlab-runner.exe start 如果代码有子模块 必须在install的时候输入当前机子上的用户账...
蓝绿部署、金丝雀发布(灰度发布)与 AB 测试
转自:https://www.jianshu.com/p/0df88fe4a1e3 随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。 蓝绿部署蓝绿色部署是一种通过运行两个相同的称为 BLUE 和 GREEN 的生产环境来减少停机时间和降低风险的技术。 蓝绿部署,以颜色命名,简单的理解就是,线上有两套集群环境,在架构图中,一套标记成蓝色,称为蓝色集群BLUE;一套标记为绿色,称为绿色集群GREEN。通过将流量引入两个集群,完成系统升级切换。 步骤一:部署绿色集群,这个时候是初始状态,蓝色集群承担全部责任,接收全部流量,等待被替换。绿色集群刚刚部署,还没有投入使用,流量为0,等待验证和上线。 步骤二:蓝色集群流量不变,向绿色集群引入流量。这个过程可以分成几个阶段完成。第一个阶段,引入少量非实时流量,仅用于数据测试;第二个阶段,引入...
CentOS 7 修改 Docker 容器和镜像默认存储位置
注: 目前发现在迁移过程中nexus服务会丢文件(迁移之前一定要做好测试) 转: https://segmentfault.com/a/1190000040326126 CentOS7修改Docker容器和镜像默认存储位置通常,当你开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录。当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮。所以现在是时候把故障排除放在如何改变docker的默认存储位置了 在试图改变Docker的默认存储位置时,我们必须知道一些重要的信息。 docker 当前使用的默认存储位置docker 当前使用的存储驱动程序镜像和容器要存放的新存储空间 Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这儿。如果你有任何在运行的容器,停止这些容器,并确保没有容器在运行,然后运行以下命令,确定当前Docker使用的存储驱动。 1、查看docker当前信息注:此处需要注意docker的两个信息: Storage Driver: ov...
