一。docker compose入门
1.docker compose是什么
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用(多个应用)。
2.网址:https://github.com/docker/compose
3.Compose 中有两个重要的概念:
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理
4.安装与卸载
4.1下载官方的
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
拷贝:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64在浏览器下载
然后上传到Linux “/usr/local/bin/docker-compose”目录即可
自己下载
echo https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)
上传
移动并改名
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
修改权限
sudo chmod +x /usr/local/bin/docker-compose
创建软连接 创建软连接 在任意目录都能执行
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看版本
docker-compose --version
卸载
sudo rm /usr/local/bin/docker-compose
5.部署Tomcat
5.1创建配置文件
docker-compose.yml (名字固定), 参照官网:https://docs.docker.com/compose/ 并给yml指定内容 : vi docker-compose.yml
# yaml 配置 version: '3' services: tomcat: container_name: tomcat restart: always image: "tomcat" ports: - "8080:8080" |
- version: '3' //版本
- services: //代表要配置服务
- tomcat: //服务的名字是tomcat,名字任意
- container_name: tomcat //构建的docker容器名字
- restart: always //容器重启方式,总是自动重启
- image: "tomcat" //容器基于什么镜像去创建
- ports: //容器映射的端口
创建好之后 使用 “ :wq ” 保存退出
5.2后台启动容器
docker-compose up -d |
5.3查看容器
docker ps -a |
5.4删除容器
docker-compose rm |
6.部署Mysql
6.1创建脚本
vi docker-compose-mysql.yml |
version: '3' services: mysql: container_name: mysql_3306 restart: always image: mysql:5.7 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: admin MYSQL_USER: root MYSQL_PASS: admin MYSQL_DATABASE: pethome volumes: - /var/lib/mysql:/var/lib/mysql - ./db/conf/my.cnf:/etc/my.cnf - ./db/init:/docker-entrypoint-initdb.d/ ports: - 3306:3306 |
- Environment : 配置环境变量
- TZ: 时区
- MYSQL_ROOT_PASSWORD :ROOT用户的密码
- MYSQL_USER :用户
- MYSQL_PASS: 密码
- MYSQL_DATABASE :数据库名
- Volumes :目录映射
- - /var/lib/mysql:/var/lib/mysql :Mysql数据目录映射
- - ./db/conf/my.cnf:/etc/my.cnf :配置文件映射
- - ./db/init:/docker-entrypoint-initdb.d/ :初始化,可以吧一些初始化SQL放到该目录
6.2准备配置文件
mkdir -p db/conf |
vi ./db/conf/my.cnf |
[mysqld] user=mysql default-storage-engine=INNODB character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 |
通过Docker-compose.yml脚本在构建容器的时候会把该配置作为mysql的配置文件
6.3准备初始化SQL
mkdir -p db/init |
vi ./db/init/user.sql |
create database test1; use test1; create table user ( id int auto_increment primary key, username varchar(64) unique not null, email varchar(120) unique not null, password_hash varchar(128) not null, avatar varchar(128) not null ); insert into user values(1, "zhangsan","test12345@qq.com","passwd","avaterpath"); insert into user values(2, "lisi","12345test@qq.com","passwd","avaterpath"); |
初始化SQL非必须,在构建容器的时候会自动执行初始化SQL
6.4创建数据目录
mkdir -p /var/lib/mysql |
6.5创建容器
docker-compose -f docker-compose-mysql.yml up -d |
- -f docker-compose-mysql.yml :指定脚本文件
使用Navcat链接
端口 33306
7.构建项目
7.1 上传环境
7.2删除以前的容器
Docker-compose down |
docker kill `docker ps -a -q` |
docker rmi `docker ps -a -q` |
7.3执行构建
cd /usr/local/docker-resource docker-compose up -d |
二。全文检索
1.全文检索理论
1.1为什么需要全文检索-数据库模糊搜索坏处
海量数据模糊查询效率低
1. 2 查询效果不好 java-javascript
对于查询%java%时会把javascript也查询出
1.3 文本数据中没有相关度排序
对于文件中关键字出现的次数,重要性等没有排序
1.4 关键字没有高亮
对于搜索关键字进行高亮显示。
1.5 没有摘要截取
对于搜索关键字进行高亮显示
2.什么是全文检索
广义:对结构化数据先创建索引,然后从索引中检索的搜索。
狭义:对文本数据搜索
3 优点
1 海量数据like查询效率高-基于索引查询
2 查询效果好 按照单词搜索
3 有相关度排序
4 有高亮
5 有摘要截取
- 相关度最高的排在最前面,官网中相关的网页排在最前面; java
- 关键词的高亮。
- 只处理文本,不处理语义。 以单词方式进行搜索
4 全文检索解决方案
1 java工具包-lucene,中小型项目
2 全文检索服务器(es,sorl等)-大型项目,小型页OK
5 全文检索核心
创建索引:分词-语法分析-排序-去重等操作
搜索索引: 搜索条件分词-搜索-对结果进行处理
入门
2.1 创建项目并且导入jar
2.2 创建索引
1获取IndexWriter
2创建document对象
3把document添加到Indexwriter并且提交
4luke图形界面客户端测试
2.3 搜索索引
1输入关键字
2通过关键字封装Query对象
3创建IndexSearcher
4把Query传入搜索器进行搜索-命中文档数,文档ids
5通过文档id获取文档
6把文档转换为想要对象就ok
api详解
1 FsDirectory.open底层平台兼容
2 TextField(分词)&StringFeild(不分词)
3 ik分词器
1 以lib方式导入v5jar
2 简单测试-中英结合
3 停止词&扩展词
4 分词粒度 为true:最大粒度,为false:细粒度分
4 TearmQuery&BooleanQUery