Elasticsearch: 权威指南

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html

参考文档:https://github.com/13428282016/elasticsearch-CN/wiki/es-setup--elasticsearch

Elasticsearch 检索

Elasticsearch工作原理

Elasticsearch :是一个分布式、可扩展、实时搜索与数据分析引擎。 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力,这是通常没有预料到的。 它存在还因为原始数据如果只是躺在磁盘里面根本就毫无用处。

ES:是一个高扩展的、开源的、全文检索搜索引擎,它提供了近实时的索引、搜索、分析功能。

应用场景

1 它提供了强大的搜索功能,可以实现类似百度、谷歌等搜索

2 可以搜索日志或者交易数据,用来分析商业趋势、搜集日志、分析系统瓶颈或者运行发展等等

3 可以提供预警功能(持续的查询分析某个数据,如果超过一定的值,就进行警告

4 分析商业信息,在百万级的大数据中轻松的定位关键信息

1 近实时

ES并不是一个标准的数据库,它不像MongoDB,它侧重于对存储的数据进行搜索。因此要注意到它 不是 实时读写 的,这也就意味着,刚刚存储的数据,并不能马上查询到。

当然这里还要区分查询的方式,ES也有数据的查询以及搜索,这里的近实时强调的是搜索....

2 集群

在ES中,对用户来说集群是很透明的。你只需要指定一个集群的名字(默认是elasticsearch),启动的时候,凡是集群是这个名字的,都会默认加入到一个集群中。

你不需要做任何操作,选举或者管理都是自动完成的。

对用户来说,仅仅是一个名字而已!

3 节点

跟集群的概念差不多,ES启动时会设置这个节点的名字,一个节点也就是一个ES得服务器。

默认会自动生成一个名字,这个名字在后续的集群管理中还是很有作用的,因此如果想要手动的管理或者查看一些集群的信息,最好是自定义一下节点的名字。

4 索引

索引是一类文档的集合,所有的操作比如索引(索引数据)、搜索、分析都是基于索引完成的。

在一个集群中,可以定义任意数量的索引。

5 类型

类型可以理解成一个索引的逻辑分区,用于标识不同的文档字段信息的集合。但是由于ES还是以索引为粗粒度的单位,因此一个索引下的所有的类型,都存放在一个索引下。这也就导致不同类型相同字段名字的字段会存在类型定义冲突的问题。

在2.0之前的版本,是可以插入但是不能搜索;在2.0之后的版本直接做了插入检查,禁止字段类型冲突。

6 文档

文档是存储数据信息的基本单元,使用json来表示。

7 分片与备份

在ES中,索引会备份成分片,每个分片是独立的lucene索引,可以完成搜索分析存储等工作。

分片的好处:

1 如果一个索引数据量很大,会造成硬件硬盘和搜索速度的瓶颈。如果分成多个分片,分片可以分摊压力。

2 分片允许用户进行水平的扩展和拆分

3 分片允许分布式的操作,可以提高搜索以及其他操作的效率

拷贝一份分片就完成了分片的备份,那么备份有什么好处呢?

1 当一个分片失败或者下线时,备份的分片可以代替工作,提高了高可用性。

2 备份的分片也可以执行搜索操作,分摊了搜索的压力。

ES默认在创建索引时会创建5个分片,这个数量可以修改。

不过需要注意:

1 分片的数量只能在创建索引的时候指定,不能在后期修改

2 备份的数量可以动态的定义

Elasticsearch 脱颖而出的地方:Elasticsearch 鼓励你去探索与利用数据,而不是因为查询数据太困难,就让它们烂在数据仓库里面。

结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程

  比如日期、时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作。比较常见的操作包括比较数字或时间的范围,或判定两个值的大小。

  文本也可以是结构化的。如彩色笔可以有离散的颜色集合: 红(red)绿(green)蓝(blue) 。一个博客可能被标记了关键词 分布式(distributed)搜索(search) 。电商网站上的商品都有 UPCs(通用产品码 Universal Product Codes)或其他的唯一标识,它们都需要遵从严格规定的、结构化的格式。

  结果只能是:存于范围之中,抑或反之。同样,对于结构化文本来说,一个值要么相等,要么不等。没有 更似 这种概念。

精确值查找

  当进行精确值查找时, 我们会使用过滤器(filters)。过滤器很重要,因为它们执行速度非常快,不会计算相关度(直接跳过了整个评分阶段)而且很容易被缓存

组合过滤器

布尔过滤器

嵌套布尔过滤器

查找多个精确值

ElasticSearch——日志工具的更多相关文章

  1. Kibana+Logstash+Elasticsearch 日志查询系统

    搭建该平台的目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具:Elasticsearch一个开源的 ...

  2. Elasticsearch日志分析系统

    Elasticsearch日志分析系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是Elasticsearch 一个采用Restful API标准的高扩展性的和高可用性 ...

  3. .NetCore中的日志(2)集成第三方日志工具

    .NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...

  4. 细说Java主流日志工具库

    概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息. 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子. 我们先来逐一了解一下主流日志工具. java.util ...

  5. Java主流日志工具库

    在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息.在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子.我们先来逐一了解一下主流日志工具. 1.java.util.lo ...

  6. 【工具推荐】ELMAH——可插拔错误日志工具

    今天看到一篇文章(构建ASP.NET网站十大必备工具(2)),里面介绍了一个ELMAH的错误日志工具,于是研究了一下. ELMAH 是 Error Logging Modules and Handle ...

  7. Android-LogCat日志工具(二)

    既然是Java语言,那么对于很多人来说,用System.out.println() 方法来打印日志是最熟悉.最简单不过了.不过在真正的项目开发中,是极度不建议使用 System.out.println ...

  8. Android-LogCat日志工具(一)

    LogCat : Android中一个命令行工具,可以用于得到程序的log信息. 就像你知道一个人的日志.航程,你可以无时无刻知道一个人在干什么. 而LogCat , 就是程序的日志.通过日志,你可以 ...

  9. Java 标准日志工具 Log4j 的使用(附源代码)

    源代码下载 Log4j 是事实上的 Java 标准日志工具.会不会用 Log4j 在一定程度上可以说是衡量一个开发人员是否是一位合格的 Java 程序员的标准.如果你是一名 Java 程序员,如果你还 ...

随机推荐

  1. Java WEB 笔记

    1. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-version 到一个非中文目录下 2). 配置一个环境变量,JAVA_HOME(指向 JDK 安装目录)或 JRE_ ...

  2. 【Alpha版本】冲刺阶段——Day2

    [Alpha版本]冲刺阶段--Day2 阅读目录 今日进展 问题困难 明日任务 今日贡献量 站立式会议 TODOlist [今日进展] 密码算法方面: 存储密码的步骤 使用CSPRNG生成一个长度足够 ...

  3. 干货 | JavaScript内存空间详解

    JS栈内存与堆内存 var a = 20; var b = 'abc'; var c = true; var d = { m: 20 } 因为JavaScript具有自动垃圾回收机制,所以对于前端开发 ...

  4. AtCoder Regular Contest 077 D - 11

    题目链接:http://arc077.contest.atcoder.jp/tasks/arc077_b Time limit : 2sec / Memory limit : 256MB Score ...

  5. bzoj1180 tree

    题目链接 link cut tree 模板题 link cut tree不都是模板题嘛?(雾 #include<algorithm> #include<iostream> #i ...

  6. SQL知识点、SQL语句学习

    一. 数据库简介和创建1. 系统数据库在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例 ...

  7. 自学Java第七周的总结

    这一周里我将看过的知识点又复习了一遍,下个星期打算将题做一遍

  8. @RefreshScope 的作用

    让在application.properties里自定义的变量也能通过@Value 注解正常注入

  9. 2017第十三届湖南省省赛B - Simplified Blackjack CSU - 1998

    在一次聚会上,Bob打算和Alice一起玩Blackjack游戏,但Alice平时很少玩扑克类游戏,Bob觉得跟Alice解释清楚Blackjack的规则有点困难,于是Bob决定和Alice玩一次简化 ...

  10. spring总结之三(依赖注入)

    DI(重要):依赖注入(Dependency Injection).一般情况下,一个类不可能独立完成一个复杂的业务,需要多个类合作共同完成,需要在类中调用其它类的方法,就要给对象赋值,程序在执行过程中 ...