zoukankan      html  css  js  c++  java
  • Elastic Search的基本介绍

    想要查询数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是非常庞大的搜索引擎,它们几乎搜索了互联网开放的所有网页和数据。然而对于我们自己的业务数据而言,肯定就没有必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便搜索和检索。Elastic Search就是不二之选,它是一个全文搜索引擎,可以快速地存储、搜索和分析海量数据。

    Elastic Search是一个开元的搜索引擎,建立一个全文搜索引擎库Apache Lucene 基础之上。

    那么Lucene又是何物?Lucene可能是目前存在的。不管是开源还是私有的,拥有最先进、高性能和全功能搜索引擎功能的库。但也仅仅是一个库。要用上Lucene,我们需要编写Java并引入Lucene包才可以,而且我们需要对信息检索有一定程度的理解才能明白Lucene是怎样工作的,理解起来没那么简单哟。

    那么为了解决这个问题,Elastic Search就诞生了。Elastic Search也是使用Java编写的,它的内部使用Lucene做索引和搜索,但是它的目标是使全文检索变得简单,相当于对Lucene的一层封装,它提供了一套简单的RESTFul API来帮助我们实现存储和检索。

    所以Elastic Search仅仅就是一个简易版的Lucene封装吗?那就大错特错了。Elastic Search不仅仅是Lucene,并且也不仅仅只是一个全文搜索引擎,还可以这样描述它:

    • 分布式的实时文件存储,每个字段都被索引并可被搜索
    • 分布式的实时分析搜索引擎
    • 可以扩展到成百上千台服务器,处理P8级结构化或非结构化数据

    Elastic Search的安装

    我们可以到Elastic Search的官网下载Elastic Search:官网.(此处无力吐槽国外的镜像地址是真的真的慢呀~)。传送门传送[华为云Elastic Search镜像](https://mirrors.huaweicloud.com/elasticsearch/ 华为云) | [华为云Kibana](https://mirrors.huaweicloud.com/kibana/ Kibana)

    首先把安装包下载下来并解压。然后运行binelasticsearch(Mac或Linux)或者binelasticsearch.bat(windows)

    Elastic Search的相关概念

    在Elastic Search中有几个基本的概念。如节点、索引、文档等等。下面来分别介绍下这些概念。

    Node和Cluster

    Elastic Search本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个Elastic Search实例。

    单个Elastic Search实例称为一个节点(Node).一组节点构成一个集群(Cluster)。

    Index

    Elastic Search会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。

    所以,Elastic Search数据管理的顶层单位就叫做Index(索引),其实就相当于MySQL、MongoDB等里面的数据库的概念。另外值得注意的是,每个Index(即)数据库的名字必须是小写

    Document

    Index里面单条的记录称为Document(文档)。许多条Document构成了一个Index。

    Document使用JSON格式表示。

    Field

    即字段,每个Document都类似一个JSON结构,它包含了许多字段,每个字段组成了一个Document,其实就可以类比MySQL数据表中的字段。

    在Elastic Search中,文档归属于一种类型(Type),而这些类型存储在索引(Index)中。可以话简单的对比图来将Elastic Search与传统的关系型数据库进行类比。

    Relational DB --> Databases --> Tables --> Rows --> Columns
    ElasticSearch --> Indices -->  Types  -->Documents --
    
  • 相关阅读:
    JavaScript对原始数据类型的拆装箱操作
    Javascript继承(原始写法,非es6 class)
    动态作用域与词法作用域
    自行车的保养
    探索JS引擎工作原理 (转)
    C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库
    C语言提高 (6) 第六天 文件(续) 链表的操作
    C语言提高 (5) 第五天 结构体,结构体对齐 文件
    C语言提高 (4) 第四天 数组与数组作为参数时的数组指针
    C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/12203486.html
Copyright © 2011-2022 走看看