ElasticSearch
时间:2019-10-15
本文章向大家介绍ElasticSearch,主要包括ElasticSearch使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、搭建ES
采用docker-compose的方式搭建
# elasticsearch will server as the index search db
# kibana will server as the web ui of elasticsearch
# the version of the elasticsearch and kibana should be equal
elasticsearch:
image: elasticsearch:5.6
mem_limit: 1024m
environment:
- TZ=Asia/Shanghai
ports:
- "9200:9200"
expose:
- "9200"
- "9300"
kibana:
image: kibana:5.6
ports:
- "5601:5601"
links:
- elasticsearch
2、设置连接
这里是连接的mongodb数据库,要求mongodb数据库必须是集群,采用mongo-connector的方式连接
有关oplog全量导入的官方解释,大概就是说,当oplog.timestamp文件不存在的时候,将会采用全量导入。
这里有一个注意点,mongo-connector是通过oplog的方式进行数据同步,所以,所要链接的数据库必须是集群。
创建mongo-connector的Dockerfile
FROM ubuntu:18.04
ENV LANG C.UTF-8
RUN apt update
RUN apt install vim -y
RUN apt install python3 -y \
&& apt install python3-pip -y \
&& pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 'mongo-connector[elastic5]' && pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 'elastic2-doc-manager'
CMD mongo-connector -c /root/data/config
- 创建镜像
docker build -t mongo-connector .
- 配置文件
{
"mainAddress": "",
"oplogFile": "/root/data/log/oplog.timestamp",
"continueOnError": true,
"fields": [
"name",
"abs",
"intro",
"nick",
"type",
"asset.type",
"_deleted",
"portfolio.type"
],
"namespaces": {
"data.entity": true
},
"logging": {
"type": "file",
"filename": "/root/data/log/mongo-connector.log"
},
"docManagers": [
{
"docManager": "elastic2_doc_manager",
"targetURL": "esurl",
"uniqueKey": "_id",
"autoCommitInterval": 0
}
]
}
- mainAddress 为mongo集群的链接
- oplogFile 为mongo-connector每次执行的数据操作的时间戳
- continueOnError 出错后是否继续
- fields 同步的字段
- namespaces 同步的数据库和表
- logging 以mongo-connector 的操作日志
- docManagers 数据插入的格式,包括唯一键的设置,数据同步的时间(单位是s),默认是只同步一次,0为实时同步(实时指的是mongo-connector检测到所连接的数据库oplog有变化,由于连接的是数据库的副本集,所以这里的变化指的是副本集的oplog的变化)
运行容器
docker run --restart=always -d -v /workspace/ES:/root/data mongo-connector:latest
原文地址:https://www.cnblogs.com/ZSMblog/p/11677174.html
- 转负二进制(个人模版)
- Selenium2+python自动化24-js处理富文本
- 【干货】对抗自编码器PyTorch手把手实战系列——PyTorch实现对抗自编码器
- Selenium2+python自动化23-富文本(自动发帖)
- 2-Sat+输出可行解(个人模版)
- 协同过滤原理及Python实现
- 每周学点大数据 | No.25二叉搜索树回顾(二)
- RBF神经网络及Python实现(附源码)
- 【干货】计算机视觉实战系列03——用Python做图像处理
- Adaboost从原理到实现(Python)
- Selenium+python自动化22-发送各种类型附件邮件
- Selenium2+python自动化38-显示等待(WebDriverWait)
- 逆元(个人模版)
- Selenium2+python自动化37-爬页面源码(page_source)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos7系统下搭建.NET Core2.0+Nginx+Supervisor环境
- CentOS7 LNMP+phpmyadmin环境搭建 第二篇LNMP环境搭建教程
- 详解Linux 下开发微信小程序安装开发工具
- Linux一个增强的截图及分享工具:ScreenCloud
- linux 命名管道实例详解
- 11个JavaScript代码重构最佳实践
- Linux中在不破坏磁盘的情况下使用dd命令
- Jexus开机自动启动配置方法
- 在 CentOS 7 中安装 MySQL 8 的教程详解
- Centos7.2 编译安装PHP7.0.2的步骤
- Linux系统下为Nginx安装多版本PHP
- Linux系统下多版本php共存的解决方案(超简单)
- 宝塔Windows面板的安装Discuz! Q方法
- 并发情况下,单例模式之双重检验锁陷阱
- Android多种方式实现相机圆形预览的示例代码