企业级搜索elasticsearch应用03-前置处理器
来源:互联网 发布:多益网络线上二笔 编辑:程序博客网 时间:2024/05/22 03:16
一。Ingest Node
IngestNode节点被用于对原始json数据预处理的节点 该节点只需要在 elasticsearch.yml中 添加 node.ingest: true 需要预处理的文档 只需要
添加一个pipeline(管道) 指定一系列的processor (处理器) 所以管道被运行在ingest节点 pipeline管道包含若干个处理器 源文档的处理可以
指定pipeline管道
在处理文档时 指定管道的语法是
PUT 索引/类型/id?pipeline=指定管道{ "foo": "bar"}pipeline的维护
1》添加管道(参考https://www.elastic.co/guide/en/elasticsearch/reference/current/put-pipeline-api.html)
管道添加语法
PUT _ingest/pipeline/管道id{ "description" : "测试管道", "processors" : [ 指定多个处理器 ]}这里演示一个set处理器 在文档添加是 set一个字段(使用之前数据 http://blog.csdn.net/liaomin416100569/article/details/78727827)
比如在添加数据是 添加一个 状态字段 status:1
添加处理器
curl -XPUT '192.168.58.147:9200/_ingest/pipeline/myp' -d '{ "description" : "测试管道", "processors" : [ { "set" : { "field": "status", "value": "1" } } ]}';尝试添加一个用户信息
curl -XPUT '192.168.58.147:9200/user/info/12?pipeline=myp' -d '{"country":"中国","provice":"广东省","city":"广州市","age":"89","name":"王冠宇","desc":"王冠宇是王五的儿子"}';查看该doc 发现多了一个status:1的字段
[root@node1 ~]# curl -XGET '192.168.58.147:9200/user/info/12?pretty'{ "_index" : "user", "_type" : "info", "_id" : "12", "_version" : 1, "found" : true, "_source" : { "country" : "中国", "city" : "广州市", "provice" : "广东省", "name" : "王冠宇", "age" : "89", "desc" : "王冠宇是王五的儿子", "status" : "1" }}2》删除管道
curl -XDELETE '192.168.58.147:9200/_ingest/pipeline/myp'修改 参考官方文档
二。常用前置处理器(参考https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-processors.html)
1》 set前置处理器 (https://www.elastic.co/guide/en/elasticsearch/reference/current/set-processor.html)
在文档被处理前 添加一个字段 语法
{ "set": { "field": "field1", "value": 582.1 }}2》GROK处理器(https://www.elastic.co/guide/en/elasticsearch/reference/current/grok-processor.html)
使用grok表达式匹配字段中 特定规则的字符到对应json
grok表达式是正则更上一层的表达式 grok也支持正则的语法
语法格式是
%{SYNTAX:SEMANTIC}
SYNTAX表示匹配的表达式 SEMANTIC表示将匹配的值写入的字段名 比如
3.44 55.3.244.1匹配grok表达式
%{NUMBER:duration} %{IP:client}NUMBER和IP都是内置的表达式名称 默认存在直接使用 举例 比如管道定义
curl -XPUT '192.168.58.147:9200/_ingest/pipeline/myp1?pretty' -d '{ "description" : "grok测试", "processors": [ { "grok": { "field": "message", "patterns": ["%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"] } } ]}';测试数据
curl -XPUT '192.168.58.147:9200/test/test/1?pipeline=myp1&pretty' -d '{ "message": "55.3.244.1 GET /index.html 15824 0.043"}';
查询结果
[root@node1 httpd]# curl -XGET '192.168.58.147:9200/test/test/1?pretty'{ "_index" : "test", "_type" : "test", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "duration" : "0.043", "request" : "/index.html", "method" : "GET", "bytes" : "15824", "client" : "55.3.244.1", "message" : "55.3.244.1 GET /index.html 15824 0.043" }}其他处理器参考官网
阅读全文
0 0
- 企业级搜索elasticsearch应用03-前置处理器
- 企业级搜索elasticsearch应用02-elasticsearch搜索
- 企业级搜索elasticsearch应用04-集群和常用插件安装
- elasticsearch 构建企业级搜索探讨
- 企业级搜索solr应用
- 企业级搜索elasticsearch应用01-单机安装和索引文档操作
- Solr--企业级搜索应用服务器
- 利用solr搭建企业级应用搜索
- JMeter-前置处理器
- 【学习】Hadoop、爬虫和Elasticsearch的企业级应用
- Solr是一个独立的企业级搜索应用服务器
- 使用 Spring、Elasticsearch 及 Logstash 构建企业级数据搜索和分析平台
- 使用 Spring、Elasticsearch 及 Logstash 构建企业级数据搜索和分析平台
- 企业级应用
- elasticsearch 搜索
- ElasticSearch搜索
- Elasticsearch 搜索
- [ElasticSearch]搜索
- C的小项目----扫雷
- Pandas100秒处理一亿行数据
- GLSL 基础
- S16模板与泛型编程
- CSRF攻击详解
- 企业级搜索elasticsearch应用03-前置处理器
- Spring源码分析-深入浅出AOP(图文分析)
- spring redis 注解开发 单片机 集群 主从复制
- 分布式缓存Redis之Pipeline(管道)
- 设计模式(一)总纲
- 润乾集算器与帆软报表集成(直接通过jdbc,类DB存储过程方式调用)
- 增删改插
- Bootstrap3模板
- Java数组