ElasticSearch

Posted fan-mister

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch相关的知识,希望对你有一定的参考价值。

目录结构

  bin :启动文件

  config:配置文件

    log4j2 :日志配置文件

    jvm.options  java 虚拟机相关配置

    elasticSerch.yml    elasticSerch的配置文件 默认端口9200 

  lib:相关jar包

  logs: 日志

  modules:功能模块

  pulgins:插件(ik)

 

 

1.安装es ,进入bin目录 双击运行elasticsearch.bat

  浏览器地址输入:http://localhost:9200

2.安装图形化工具 head (前提必须安装node.js环境)

  安装npm install

  进入head目录,cmd 执行启动命令:npm run start

  浏览器地址输入:http://localhost:9100

3.连接head 时存在跨域问题,需要爱es配置文件中(config/elasticSerch.yml )配置跨域属性值

  http.cors.enabled: true
  http.cors.allow-origin: "*"

4.了解ELK

  ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框 架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可 见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。Logstash是ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出 到不同目的地(文  件/MQ/redis/elasticsearch/kafka等)。Kibana可以将elasticsearch的数据通过友好 的页面展示出来,提供实时分析的功能。
市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称,但实际上ELK不仅仅适用 于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非 唯一性。
技术图片

 

 

 


 
5.安装Kibana

  Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索 引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理 解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查 询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动 Elasticsearch索引监测。 官网:https://www.elastic.co/cn/kibana
Kibana 版本要和 Es 一致!

 

 

 

进步bin目录执行kibana.bat运行

访问地址:http://localhost:5601

设置成中文的,在kibana 安装的目录下的config文件中的kibana.yml文件中设置

#i18n.locale: " ch-ZN"

 

ES

 

集群,节点,索引,类型,文档,映射

技术图片

字段类型(mapping)中对于字段的定义称为映射, 比如 name 映射为字符串类型。 

 

安装ik分词器

有两种分词

1.ik_smart   :为最小切分

技术图片

2.ik_max_word :为最细粒度切分

技术图片

 

 

 

基于restFul风格命令

技术图片

 

 

 创建索引

PUT /test1/type1/1
{
  "name": "苦瓜先森",
  "age": 22
}

第一种情况

1.创建索引字段规则 注意没有写属性,默认属性是_doc(PUT /test2/_doc)

PUT /test2
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "long"
      },
      "birthday": {
        "type": "date"
      }
    }
  }
}

新建对应规则的文档**类型名称必须为_doc,字段类型必须对应

put /test2/_doc/1
{
  "name": "中国人名",
  "age": 12,
  "birthday": "2020-12-21"
}

第二种情况

创建指定type类型规则 ElasticSearch7.x版本废弃这种写法了,ElasticSearch6.x支持

PUT /test3
{
  "mappings": {
    "test": {
      "properties": {
        "name": {
          "type": "text"
        },
        "age": {
          "type": "long"
        },
        "birthday": {
          "type": "date"
        }
      }
    }
  }
}

 

修改 

第一种方式

PUT /test2/_doc/1
{
  "name": "苦瓜先森11",
  "age": 22,
  "birthday": "2020-08-06"
}

第二种方式

POSt /test2/_doc/1/_update
{
  "doc": {
    "age": 99
  }
}

 

以上是关于ElasticSearch的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch笔记九之优化

使用标准库Ruby将数据标记到Elasticsearch批量中

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能

Elasticsearch-PHP 索引操作

elasticsearch 特殊字段