yanfeng1012 / elasticsearch

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elasticsearch

《Elasticsearch 权威指南》中文版

《FOSElasticaBundle》

《go-mysql-elasticsearch》

elasticsearch 基础

安装并运行

  • 下载elastic.co/downloads/elasticsearch

  • 安装

       tar -xvf elasticsearch-7.5.1.tar.gz
       cd elasticsearch-7.5.1/bin
       ./elasticsearch
       
       ps:如果你想把 Elasticsearch 作为一个守护进程在后台运行,
       	 那么可以在后面添加参数 -d
    
  • 测试

    测试 Elasticsearch 是否启动成功 浏览器访问 http://localhost:9200/?pretty

基本概念

  • 索引

存储数据到 Elasticsearch 的行为叫做 索引

索引(名词):

一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 索引(动词):

索引一个文档 就是存储一个文档到一个 索引 (名词)中以便被检索和查询。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时,新文档会替换旧文档情况之外。

倒排索引:

关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。

默认的,一个文档中的每一个属性都是 被索引 的(有一个倒排索引)和可搜索的。一个没有倒排索引的属性是不能被搜索到的。我们将在 倒排索引 讨论倒排索引的更多细节。

  • 索引文档

      PUT /megacorp/employee/1
      {
          "first_name" : "John",
          "last_name" :  "Smith",
          "age" :        25,
          "about" :      "I love to go rock climbing",
          "interests": [ "sports", "music" ]
      }
    

注意,路径 /megacorp/employee/1 包含了三部分的信息:

megacorp 索引名称 employee 类型名称 1 特定雇员的ID

About

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。