ElasticSearch从入门到使用

概述

本篇内容定位ElasticSearch入门介绍,其中包括ElasticSearch产生背景,特点,应用场景,安装,使用(命令行,Java中引入),底层原理,等。

产生的背景

大数据时代,大量的数据只是被存储,不能做实时决策分析,这时候需要一个全文搜索,或者结构化数据的实时统计工具。
Elasticsearch 是一个分布式、可扩展、近实时的搜索与数据分析引擎。 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力。

特点

分布式、可扩展、实时、处理PB级别的数据

应用场景

统计、搜索

安装方法

Linux下的安装方法如下,Windows可以自行百度:

  1. 安装JDK1.8以上;
  2. 下载ES安装包(5.6.8为例);https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz
  3. 解压,执行bin/elasticsearch
  4. 当显示[INFO ][o.e.n.Node] [6-bjhwl] started时表示安装成功;
  5. 也可以另打开一个终端,通过curl 'http://localhost:9200/?pretty'来测试。
    参考:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/_installation.html

踩坑记录:我这里是在win7上的fedora28虚拟机上安装的,在ES启动之后,不能通过windows的浏览器访问,最后发现需要在es的配置文件中配置Linux机器IP,方法如下:
在es的config目录中,找到elasticsearch.yml配置文件,在network.host中增加Linux的IP地址,IP地址可以 通过ifconfig查询
在这里插入图片描述
ElasticSearch从入门到使用_第1张图片

使用

基本使用

类似于MySQL,在某一类数据存入MySQL时,需要在MySQL中先创建库(database),再创建表(table),然后把数据存入insert进去,当需要查询的时候就select,需要删除就delete,需要更新就update
那么ES作为一个搜索引擎,是如何保存数据的,又是如何查询的,不需要了,又该怎么删除呢,并且当数据有误时,能修改吗?
1 . 再回答上面几个问题之前需要先引入几个概念

  • 索引(index)
    索引是一类文档的集合,所有的操作比如索引(索引数据)、搜索、分析都是基于索引完成的。
    在一个集群中,可以定义任意数量的索引。
  • 类型(type)
    类型可以理解成一个索引的逻辑分区,用于标识不同的文档字段信息的集合。
  • 文档(doc)
    文档是存储数据信息的基本单元,使用json来表示。
  • 节点(node)
    一个ES服务器就成为一个节点,多个ES服务器就组成了集群。
  • 分片(shard)与备份(replica)
    在ES中,索引会备份成分片,每个分片是独立的lucene索引,可以完成搜索分析存储等工作。

2 . 举例子
看了上面的定义描述,再通过例子来了解下。
现在有个People对象,需要保存在ES中,People的定义如下:

public class People {
    private Long id;
    private String name;
    private String sex;
    private Float height;
    private Float weight;
    /**
     * 兴趣爱好
     */
    private String interests;
}

可以创建一个索引名称为people的索引,类型为people,类型是文档字段信息的集合,所以类型的json为

"properties": {
	"id": {
	  "type": "long",
	  "index": "not_analyzed"
	},
	"name": {
	  "type": "string"
	},
	"sex": {
	  "type": "string"
	},
	"height": {
	  "type": "float",
	  "index": "not_analyzed"
	},
	"weight":{
	  "type": "float",
	  "index": "not_analyzed"
	},
	"interests": {
	  "type": "string",
	  "analyzer": "ik"
	}
}

这里直接通过终端创建索引和类型比较麻烦,我安装了elasticsearch-head工具,安装方法https://github.com/mobz/elasticsearch-head。

安装elasticsearch-head

我直接通过Chrome安装的插件,插件地址:https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm?utm_source=chrome-ntp-icon 。截图如下:
ElasticSearch从入门到使用_第2张图片
安装好后,连接:
ElasticSearch从入门到使用_第3张图片
插入数据:
ElasticSearch从入门到使用_第4张图片
至此,ES安装成功,并通过elasticsearch-head工具向其中插入了两条数据。

Java中引入

在Web工程中引入es客户端,单独写了一篇:Java工程中引入ES客户端

参考:
https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html
http://www.cnblogs.com/xing901022/p/4954947.html
https://es.xiaoleilu.com/010_Intro/00_README.html
https://blog.csdn.net/laigood/article/details/8193758

你可能感兴趣的:(数据和存储)