es安装目录不能有空格(ik)
es,etcd等
ES数据并非实时的,而是近实时的。这是因为ES使用了分布式搜索引擎Lucene作为其底层实现,而Lucene是基于倒排索引的搜索引擎,它需要一定时间来构建和更新索引,因此ES中的数据也需要一定时间才能被索引和搜索到。
ES的近实时性可以通过下面两个参数进行配置:
1. refresh_interval:该参数用于控制索引的刷新间隔时间。当索引被修改后,数据不会立刻被写入磁盘,而是暂时存储在内存中,等待一段时间后再批量写入磁盘。这个时间间隔由refresh_interval参数控制,默认值为1s。
2. index.translog.flush_threshold_ops:该参数用于控制操作的批量提交。当批量操作的数量达到该参数指定的数值后,会自动将内存中的数据写入磁盘。该参数默认值为5000。
通常情况下,可以根据具体的业务需求来调整这些参数,以达到更好的搜索性能和数据更新实时性的平衡。比如,可以将refresh_interval设置为较小的值,以加快索引的刷新速度,但同时也会增加磁盘IO的负载,需要注意磁盘的承受能力。
1.功能
近实时搜索
单表聚合分析
实时预测(插件)

OLTP(on-line transaction processing)翻译为联机事务处理, OLAP(On-Line Analytical Processing)翻译为联机分析处理,从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询
mysql适合OLTP:(可用性,ACID)
(1)事务涉及少量数据
(2)通过索引访问数据
(3)用户量较大
(4)数据查询和更新频繁
(5)响应速度快
2.es
不要把es作为主要的数据存储
倒排索引
- 安装
https://www.elastic.co/guide/en/elasticsearch/reference/7.6/getting-started-install.html


3.ELK
Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
4. 环境
- jdk
es默认自带jdk,linux指定用 export
windows es 指定自己的jdk
elasticsearch-env.bat
添加
set JAVA_HOME=C:\elasticsearch-7.6.1\jdk\bin即可 - 启动
elasticsearch.bat
-d 后台启动
访问http://localhost:9200/,有结果显示即可 - 异常问题
- win10 启动异常, 结束 进程
- 注意linux不能用root用户启动
# 添加组
groupadd es
useradd es -g es
# 更改用户所有者为es
chown -Rf es:es /usr/local/es
# su es
- 注释掉jvm.options的 8-13:-XX:+UseConcMarkSweepGC
7.6版本的 14-:-XX:+UseG1GC 默认已开启
es安装和启动
ES配置文件参考与参数详解
ES在Linux上的配置
简单集群:ElasticSearch7.6集群搭建
详细ElasticSearch 7.4集群部署
5. 版本
要求 kinbanna 和 es 版本一致
版本必须保持一致
6.ik中文分词器
elasticSearch安装ik分词器插件后报错: java.security.AccessControlContext
如果使用es自带jdk,修改 D:\elasticsearch-7.6.1\jdk\conf\security的java.policy文件,在grant{ };中加入一行即可,permission java.security.AllPermission;
此项设置与es开启远程访问设置冲突.
- 开启es远程访问
修改conf–>elasticsearch.yml
view codeelasticsearch.yml文件
node.name: node-1 前面的#打开
#network.host: 192.168.0.1
network.host: 192.168.136.110
#network.host: 0.0.0.0
#network.host: localhost
#network.host: 127.0.0.1 这里把network.host 设置为自己的ip地址 也可以设置成0.0.0.0(代表所有ip可以访问)
cluster.initial_master_nodes: ["node-1"] 这里一定要这样设置,我就是这里没有这样设置出问题的,弄了好久
这里的 node-1 是上面node.name:后面的对应值
在最后加上这两句,要不然,外面浏览器就访问不了哈
http.cors.enabled: true
http.cors.allow-origin: "*"
7. Logstash导入数据
正式导入前,使用
logstash -f ./logstash_mysql.conf -t
测试一下,显示ok再导入
kibana添加测试数据
8.es 操作
1. 删除全部数据
5.x使用
POST indexName/_delete_by_query
{
"query": {
"match_all": {
}
}
}
有时候因为数据量较大删除到一半就返回结果了,不要慌,继续发送命令,多执行几次就好了。
之后删除索引
DELETE /indexName
2. Elasticsearch query查询语法
filter:过滤,不参与打分
must:如果有多个条件,这些条件都必须满足 and与
should:如果有多个条件,满足一个或多个即可 or或
must_not:和must相反,必须都不满足条件才可以匹配到 !非
发生 描述
must
该条款(查询)必须出现在匹配的文件,并将有助于得分。
filter
子句(查询)必须出现在匹配的文档中。然而不像 must查询的分数将被忽略。Filter子句在过滤器上下文中执行,这意味着评分被忽略,子句被考虑用于高速缓存。
should
子句(查询)应该出现在匹配的文档中。如果 bool查询位于查询上下文中并且具有mustor filter子句,则bool即使没有should查询匹配,文档也将匹配该查询 。在这种情况下,这些条款仅用于影响分数。如果bool查询是过滤器上下文 或者两者都不存在,must或者filter至少有一个should查询必须与文档相匹配才能与bool查询匹配。这种行为可以通过设置minimum_should_match参数来显式控制 。
must_not
子句(查询)不能出现在匹配的文档中。子句在过滤器上下文中执行,意味着评分被忽略,子句被考虑用于高速缓存。因为计分被忽略,0所有文件的分数被返回。
- 精确匹配单个字段
GET /{索引名}/_search
{
"query": {
"term": {
"{FIELD}": "{VALUE}"
}
}
}
- 查询后排序
GET /{索引名}/_search
{
"query": {
"term": {
"id": "dzjk"
}
},
"sort": {
"timestamp": {
"order": "desc"
}
}
}
{
"query": {
"bool": {
"must": [],
"must_not": [{
"term": {
"flow_yh_yh_location": ""
}
},
{
"term": {
"routemcc": "1111"
}
},
{
"term": {
"routemcc": "2222"
}
}
],
"should": [{
"match_all": {}
}]
}
},
"from": 0,
"size": 10,
"sort": {
"tftxtime": {
"order": "desc"
}
},
"aggs": {}
}
- 多条件查询
{
"query": {
"bool": {
"must": [
{
"term": {
"id": "dzj"
}
},
{
"term": {
"timestamp": "2021-07-15 00:05:07"
}
}
]
}
}
}
本文围绕Elasticsearch展开,介绍其功能,如近实时搜索、单表聚合分析等。阐述了ES安装、ELK组件(Elasticsearch、Logstash、Kibana、FileBeat)作用,以及环境配置、版本要求。还提及ik中文分词器问题处理、Logstash导入数据测试,最后介绍ES删除数据和查询语法等操作。
496

被折叠的 条评论
为什么被折叠?



