对于很多开发者来说,可能你还从来没有安装过 Elastic Stack 的开源版本,因为我们习惯会安装 Basic 版本及以上的发布。在今天的展示中,我将展示 OSS 版本 和 Basic 及以上版本安装在界面上的区别。OSS 版本目前被一些提供 Elastic Stack 云服务的厂商,比如 Amazon 所使用。对于大多数的开发者来说,我们可能一辈子不会去使用它。你可以在 Elastic 的官方网站查看到各个版本的区别 https://www.elastic.co/cn/subscriptions。
我们可以直接到地址 https://www.elastic.co/downloads/ 下载:
es数据查询方案
应用端关联
普遍使用,应用接口层处理关联关系。
存储层:独立两个索引存储。
业务层分两次请求
业务层是进行了两次查询,统一返回给用户。
场景:数据量少的业务。
优点:数据量少时,体验好。
缺点:数据量大,两次查询耗时长,影响使用体验。
使用ES多索引建立相同的index,针对index检索到对应ID后再回MySQL查询,业务层通过关联ID join出需要的数据
宽表冗余存储
使用logstash同步关联数据到ES
先通过视图对Mysql数据做多表关联,然后同步视图数据到ES
问题:店家 . 电话. 地址 . 品牌 .品类多张表合为一张表存储。
场景:一对多或者多对多关联。
优点:速度快。因为每个文档都包含了所需的所有信息,当信息在查询进行匹配时,不需要进行关联操作。
缺点:索引更新或删除数据,应用程序得处理宽表的冗余数据.
因为冗余存储,可能导致部分搜索和聚合报错。
嵌套文档(Nested)存储
Nested类型是ES Mapping定义的集合类型,比object类型更好的支持独立检索类型
用嵌套文档,使用普通的查询无法访问,必须使用nested query、nested filter、nested facet查询方式
场景:对少量,子文档偶尔更新、查询频繁的场景
优点: 基于nested类型做任何的查询
缺点:查询相对较慢,更新子文档需要更新整篇文档。
window下安装es7.9.2
解压 elasticsearch-7.9.2-windows-x86_64.zip
vim elasticsearch.yml
cluster.name: myapp-application
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
vim jvm.options
-Xms4g
-Xmx4g
设置java_home的环境变量
D:\service\elasticsearch-7.9.2-windows-x86_64\elasticsearch-7.9.2\jdk
设置es为系统启动服务
D:\service\elasticsearch-7.9.2-windows-x86_64\elasticsearch-7.9.2\bin\elasticsearch-service.bat install
D:\service\elasticsearch-7.9.2-windows-x86_64\elasticsearch-7.9.2\bin\elasticsearch-service.bat start
windows 安装nodejs
https://nodejs.org/download/release/v12.12.0/
添加nodejs系统变量
计算机—属性–更改高级设置—环境变量
PATH
D:\service\node-v12.12.0-win-x86;D:\service\node-v12.12.0-win-x86\node_modules;
修改npm的缓存地址
npm config set prefix "D:\service\node-v12.12.0-win-x86\node_global"
npm config set cache "D:\service\node-v12.12.0-win-x86\node_cache"
npm list -global
修改镜像地址和配置文件
npm config list
npm config set registry=http://registry.npm.taobao.org 配置镜像站
C:\Users\Administrator.npmrc 查看配置文件
测试镜像站
npm info elasticdump
安装模块
npm install elasticdump -g
查看global下的模块
npm list -global
windows下安装kibana
解压kibana-7.9.2-windows-x86_64.zip
修改kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
#kibana.index: ".kibana"
#pid.file: /var/run/kibana.pid
logging.dest: D:\service\kibana-7.9.2-windows-x86_64\logs\kibana.log
logging.verbose: true
i18n.locale: "zh-CN"
启动后 关闭终端我的kibana就断开链接了,我需要找个可以把kibana加入windows系统服务的方法
通过工具将kibana加入win系统后台运行
http://www.nssm.cc/download
http://www.nssm.cc/release/nssm-2.24.zip
nssm.exe install kibana
编辑启动文件
kibana.bat -f D:\service\kibana-7.9.2-windows-x86_64\config\kibana.yml
报错 起不了
Error setting up one or more I/O filehandles. Service kibana-Service will not be started.
Error duplicating the filehandle previously opened for STD_INPUT_HANDLE as stdin. DuplicateHandle() failed: 句柄无效。
kibana-Service 服务由于下列服务特定错误而终止:
系统无法打开文件。
重新解压
先放在cmd的窗口把