ElasticSearch概述

众所周知ElasticSearch(后面简称ES)很多用来做全文搜索,因为性能高,一般的数据库如果直接模糊查询,性能非常低下,比如要查询要将关键词分开查,数据库是满足不了的。ES是基于Lucene的。隐藏复杂性,提供简单易用的restful api接口、java api接口,它并非什么新技术,也是对Lucene等技术的封装

Elasticsearch是一个实时分布式搜索和分析引擎。它用于全文搜索、结构化搜索、分析。

全文检索:将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。

结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from products where category_id='日化用品'

ES在Stack Overflow、GitHub等知名网站都有使用,很多站内搜索,比如电商、新闻、门户网站等都使用了ES,也是比较适合ES的一个场景

ElasticSearch的核心概念:

      非实时:在插入数据到可以查询该数据有延迟,大概在1秒左右。

集群(Cluster)

顾名思义,集群包含多个节点,当然每个节点属于哪个集群的话也是需要配置文件来进行配置,集群默认是elasticserach名称

Node节点

集群的每一个节点都有自己的名字,默认是随机命名,节点名称也是很重要的。节点默认加入"elasticsearch"的集群,如果启动多个节点的话,相当于组成了一个"elasticsearch"的集群,一个节点也可以当做是一个集群。

Index(索引-数据库)

相当于对应mysql的数据库,包含一堆结构类似的文档数据(document),这里说的类似就是说一个document里面的大多数fields都是一样的,假如有一个index里面有5个document,如果每个document里面的的fields都不一样,那这些document就不合适放入到同一个index里面去。

Type(类型-表)

相当于数据库的表,每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field。简单理解就是,比如我有一张商品表,这张商品表就相当于type,商品type,都知道数据库的每张表字段列都是一样的。这里的field就理解为数据库的列,一个type下的document,都有相同的field,这个理解就是document就相当于每张表(type)里面的行数据,type也是属于Index

Document(文档-行)

文档是es中的最小数据单元,一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构表示,每个index下的type中,都可以去存储多个document。

 Field(字段-列)

Field是Elasticsearch的最小单位。一个document里面有多个field,每个field就是一个数据字段。

mapping(映射-约束)

数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等。

这样就创建了一个名为blog的Index。Type不用单独创建,在创建Mapping 时指定就可以。Mapping用来定义Document中每个字段的类型,即所使用的 analyzer、是否索引等属性,非常关键等。

 

版本:在6.x中,一个index只能有一个type,推荐的type名是 _doc。而在7.0版本后完全抛弃了type

 

 

Elasticsearch是一个开源的分布式搜索和分析引擎,构建在Apache Lucene库之上。它提供了一个分布式存储、搜索和分析大规模数据的解决方案,具有高性能、可扩展性和强大的全文搜索功能。 作为一个实时的分布式搜索引擎,Elasticsearch能够快速地存储、检索和分析海量数据。它使用倒排索引(Inverted Index)的数据结构来实现高效的全文搜索,支持复杂的查询和聚合操作。 以下是一些关键特性和用途: 1. 分布式架构:Elasticsearch采用分布式架构,可以水平扩展,通过将数据分散存储在多个节点上来提高性能和容错性。 2. 实时搜索和分析:Elasticsearch能够在毫秒级别实现实时搜索和分析,使得用户能够快速获取到最新的数据和结果。 3. 多种查询支持:Elasticsearch支持全文搜索、精确匹配、模糊查询、范围查询、聚合查询等多种查询方式,可以满足各种复杂的搜索需求。 4. 多种数据类型支持:Elasticsearch支持处理不同类型的数据,包括文本、数值、地理位置、日期等。它能够自动识别字段类型,并提供相应的搜索和分析功能。 5. 分布式数据处理:Elasticsearch提供了丰富的分布式数据处理功能,包括索引、更新、删除、批量操作、数据复制和故障转移等。 6. 可扩展性和高可用性:Elasticsearch支持水平扩展,可以通过添加更多的节点来处理更大规模的数据。它还提供了数据备份和故障转移机制,以确保数据的高可用性和可靠性。 Elasticsearch广泛应用于各种场景,如日志分析、实时监控、电商搜索、推荐系统、企业搜索等。它的强大搜索和分析能力使得用户能够快速从海量数据获取有价值的信息和洞察。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值