ES 中文拼音混合搜索
1. 使用场景介绍搜索功能支持拼音检索、中文检索、拼音中文混合检索。 例如,输入 l德h: 期望结果:刘德华、刘德华4 不期望结果:刘得华、刘的华 2. 下载 pinyin 插件github地址注意:下载的版本需与自己的 ES 版本一致。 3. 修改插件源码及安装注意事项: v7.13.1 已原生支持拼音中文混合检索,可直接安装使用。 v7.9.3 及以下版本需手动修改源码,步骤如下: 下载 v7.9.3 和 v7.13.1 两份源码 通过 compare 对比,将 v7.13.1 中新增的代码合入 v7.9.3 修改 pom.xml 中的 elasticsearch.version 为 7.9.3 执行 mvn clean package 打包 将生成的 elasticsearch-analysis-pinyin-7.9.3.zip 解压到 plugins/analysis-pinyin 目录下 4. 测试创建索引123456789101112131415161718192021222324252627282930313233343536373839########...
Kettle ES-Bulk-Insert 组件二开记录(基于 Kettle 9.2)
TODO: 待改造,目前这种可以配置变量的地方却无法配置变量(不识别,只能写死),之后尝试改下。 背景目前 Kettle 最新的版本是 9.2,但是 ES 仅支持到 6.4.2,而且也无法配置用户名和密码还有 schema,所以需要对 es-bulk-insert 组件改造下。 下载源码Kettle GitHub 源码地址 注意:有些包可能国内网络下载不下来,而且国内镜像也没有,就需要单独去想办法了,有人需要的话我会把包发出来。 主要改两个类 ElasticSearchBulk ElasticSearchBulkDialog 前者是业务数据执行需要的,后者是那个组件框需要的,比如你点 Test,就会调用这个类的 test 方法。 首先需要改 pom 文件,改成需要的版本 其次是这些在高版本中弃用的类和方法 在 Elastic 官网中也给出了对应的替代方法:官方迁移指南 ElasticSearchBulk 类的修改如下1234567891011121314151617181920212223242526272829303132333435363738394...
Flink ES Connector 7 - ElasticsearchSink
截至1.13.1,官方文档所提供的方式已经废弃12345678910111213141516171819202122232425262728293031HttpHost httpHost = new HttpHost(esHost, esPort, esScheme);List<HttpHost> httpPosts = new ArrayList<>();httpPosts.add(httpHost);RestClientFactory restClientFactory = new RestClientFactory() { @Override public void configureRestClientBuilder(RestClientBuilder restClientBuilder) { CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCr...
Kibana 用法
Kibana 查询语法 要搜索一个确切的字符串,即精确搜索,需要使用双引号引起来:path:"/app/logs/nginx/access.log" 如果不带引号,将会匹配每个单词:uid token 模糊搜索:path:"/app/~" * 匹配 0 到多个字符:*oken ? 匹配单个字符:tok?n 匹配是否包含的条件: +:搜索结果中必须包含此项 -:不能含有此项 什么都没有则可有可无:+token -appVersion appCode 运算符 AND/OR/NOT 必须大写:token AND uid;token OR uid;NOT uid 允许一个字段值在某个区间([] 包含该值,{} 不包含):@version:[1 TO 3] 组合查询:(uid OR token) AND version 转义特殊字符 + – && || ! ( ) { } [ ] ^ " ~ * ? : \:转义特殊字符只需在字符前加上符号 \ 查询样例简单查...
日志生命周期处理
日志生命周期处理脚本方式查出 30 天以前的索引并删除: 123456789101112#!/bin/shcurl -H'Content-Type:application/json' -d'{ "query": { "range": { "pt": { "lt": "now-30d", "format": "epoch_millis" } } }}' -XPOST -H "Authorization:Basic ZWxhc3RpYzpTb3BlaU1HcjA5M0AkJV5FTEs=" "https://ip:9200/dev02-*/_delete_b...
Elastic APM
Elastic Application Performance Management (APM) 是基于 Elastic Stack 构建的应用性能监控系统。 背景目前我们日志系统已经投入生产使用,对于日常开发有了一个方便排查问题的途径。 但是,有些难题不是浮于表面的,下一步需要做的,便是找出这些埋于底层的性能及效率的问题。这便是 Application Performance Management (APM) 出现的目的。 目标 收集有关请求的响应时间、数据库查询 外部 HTTP 请求等的详细性能信息 对应用程序的请求期间发生的其他缓慢操作的跟踪 自动收集未处理的错误和异常,错误主要基于堆栈跟踪进行分组,因此可以识别出现的新错误,并密切关注特定错误发生的次数 价值依靠 APM,过滤出不合格的接口,根据具体情况加以改进,最终实现一个可以满足三高的理想状态。 我们可以对接口的所有信息进行追溯,现在我们已经有了 trace-id,可以反向拿"不合格的接口"的 trace-id 去日志里找原因。 APM ServerAPM Server 是用 Go 编写的...
Filebeat 多实例部署(守护进程方式 systemd)
安装好 Filebeat1站内搜索:记录日志系统的安装-部署-配置-使用文档(1) 复制两个子文件夹12cp -r /etc/filebeat{,1}cp -r /etc/filebeat{,2} 修改各自的 filebeat.yml1234...(省略 inputs 之类的)logging.files: # 这里修改文件夹路径 path: /var/log/filebeat1/2 查看机器 systemd 的 path 我这里是 /usr/lib/systemd/system 添加两份配置文件 vi /usr/lib/systemd/system/filebeat1.service 1234567891011121314151617[Unit]Description=Filebeat sends log files to Logstash or directly to Elasticsearch.Documentation=https://www.elastic.co/bea...
Kibana Dashboard 结合 Filebeat 的使用
利用 Filebeat Module 监听/传输数据到 ES 并通过 Kibana 的面板显示要记得将 modules 功能打开 filebeat 安装完默认会在 /etc/filebeat/modules.d 下放着许多模块的 yml,需要哪个,就执行 filebeat modules enable xxx filebeat.yml 配置: 1234567891011121314151617181920212223filebeat.config: modules: enabled: true path: modules.d/*.yml reload.enabled: true reload.period: 10s# ------------------------------ Kibana Output -------------------------------output.elasticsearch: hosts: ["10.0.2.15:9200"] username: "elastic"...
Elasticsearch 聚合使用方式
数据聚合聚合(aggregations) 可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。 聚合分类 名称 作用 对比Mysql 分桶类型 (Bucket) 满足特定条件的文档的集合 类似GROUP BY语法 指标分析类型(Metric) 计算最大值,最小值,平均值等 类似 COUNT 、 SUM() 、 MAX() 等统计方法 管道分析类型(Pipeline) 对聚合结果进行二次分析 矩阵分析类型(Matrix) 支持对多个字段的操作并提供一个结果矩阵 Bucket聚合分析按照Bucket的分桶策略,常见的Bucket聚合分析如下: 策略 描述 Terms 最简单策略,如果是text类型,则按照分词后的结果分桶 Range 按照指定数值的范围来设定分桶规则 Date Range 通过指定日期的范围来设定分桶规则 Histogr...
记录 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: ...
