Elastic Stack 笔记/day1.18

本文介绍了Elasticsearch的核心组件(如Beats数据采集、Logstash数据处理、Elasticsearch存储与查询以及Kibana可视化),涵盖了RESTfulAPI调用、DSL、EQL查询语法、SQL查询选项以及PainlessScriptingLanguage编程。还详细讨论了Mapping和分词器,特别是IK分词器在中文场景中的应用。
摘要由CSDN通过智能技术生成

ES包含了 数据的整合 => 提取 => 存储 => 使用

        beats:从各种不同类型的文件/应用来采集数据。

        logstash:从多个采集器或数据源来抽取/转换数据,向ES输送。

        elasticSeach:存储,查询数据。

        kibana:可视化ES的数据。

调用方式

1)restful api 调用 (http请求)

               Get请求:http://localhost:9200/

               curl可以模拟发送请求: curl -X GET"localhost:9200/?pretty"

        ES的启动端接口 :

                1>. 9200:给外部用户(给客户端调用)的端口  。
                2>. 9300:给ES集群内部通讯的(外部调用不了的)。

2) kibana devtools:

        可以自由地对ES进行操作(本质也是 restful  api)。

        devtools(不建议成产环境使用)

3) 客户端调用

        Java客户端、Go客户端

Breaking changes policy | Elasticsearch Java API Client [7.17] | Elastic

启动:

        启动elasticsearch在文件夹bin目录下cmd,输入elasticsearch.bat

         启动kibana在文件夹bin目录下cmd,输入kibana

ES的语法

<1> DSL

josn格式,应用最广泛,最兼容http请求

建表插入,数据

POST post/_doc
{
  "title" : "光嘎个",
  "desc":"嘎嘎嘎嘎嘎嘎"
}

查询

DSL语法文档:Query and filter context | Elasticsearch Guide [7.17] | Elastic
GET post/_search
{
  "query": {
    "match_all": { }
  },
  "sort": [
    {
      "@timestamp": "desc"
    }
  ]
}

根据id查询

GET post/_doc/bmhcG40BBQjGk2OOM-sp

修改 

POST post/_doc/bmhcG40BBQjGk2OOM-sp
{
  "title" : "光嘎个222",
  "desc":"嘎嘎嘎嘎嘎嘎222"
}

删除

DELETE _data_stream/logs-my_app-default

<2> EQL

专门查询ECS文档(标准指标字段)的数据的语法,更加规范。

EQL search | Elasticsearch Guide [7.17] | Elastic

POST my_event/_doc
{
  "title":"奥特aaaa光",
  "@timestamp": "2099-05-06T16:21:15.000Z",
  "event": {
    "original": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736"
  }
}

GET /my_event/_eql/search
{
  "query": """
    any where 1 == 1
  """
}

<3> SQL

        学习成本低,可能需要额外插件支持、性能较差。

SQL | Elasticsearch Guide [7.17] | Elastic

POST /_sql?format=txt
{
  "query": "SELECT * FROM post WHERE title like '%光%'"
}

<4>  Painless Scripting Language

编程的方式取值,更灵活,但是学习成本高。

Mapping

        Mapping表结构:

                自动生成Mapping,手动生成Mapping。

        理解为数据库的表结构,有哪些字段,字段类型。

        ES支持动态mapping,表结构可以动态改变,而不像MySQL一样必须手动建表,没有的字段就不能插入。

显示创建Mapping

PUT user
{
  "mappings": {
    "properties": {
      "age":    { "type": "integer" },  
      "email":  { "type": "keyword"  }, 
      "name":   { "type": "text"  }     
    }
  }
}

GET user/_mapping 

分词器 

        分词的一种规则

        

        空格分词器:withespace,结果:The quick brown fox

POST _analyze
{
  "analyzer": "whitespace",
  "text":     "The quick brown fox."
}

         关键词分词器:就是不分词,整句话当做专业术语

POST _analyze
{
  "analyzer": "keyword",
  "text":     "The quick brown fox."
}

        IK分词器:(ES插件)

                对中文比较友好,

                下载版本与ES必须一致

                下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

        自定义词典可以让ik按自己的想法分词。

         ik_smart和ik_max_word的区别?“小黑子”

                ik_smart是只能分词,尽量选择最像一个词的拆分方式。

                ik_max_word尽可能地分词,可以包括组合词,比如“小黑”,“黑子”。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值