Elasticsearch上手——几个基本概念

原创 2017年01月26日 12:05:48

Elasticsearch的说明文档中,基本概念(Basic Concepts)一节中提到了一些术语,结合实践经验,尝试重新理解一下。

Document(文档)

文档是Elasticsearch存储和建立索引的基本单位,比如一篇文章、一条数据库记录等,通过JSON格式被添加到平台。下面就是一个文档:

{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}

上面的文档包含了三个字段:user、post_date和message

Type(类型)

我将其理解为文档的类型,如果非要对应到数据库的概念上,那就是相当于MySQL的表结构或者MongoDB的Collection。至于如何定义,完全取决于要实现的业务逻辑。下面一个type是关于上面文档的定义:

"message": { 
    "properties": { 
        "user":         { "type": "text" }, 
        "post_date":    { "type": "date" }, 
        "message":      { "type": "text" }  
    }
}

定义了一个叫做message的type,包含了三个字段,user、post_date和message,字段类型分别为text、date和text。字段类型对创建索引的方式以及可支持的搜索有重要的意义,这里不做进一步解释。

Index(索引)

Index是一系列文档的集合,在开始使用之前必须创建一个确定名称的index,一个index下面可以包含多个type。在索引文档、搜索、更新、删除时都需要指定索引的名称,并且index的名称必须为小写字母。
可以将其简单理解一个数据库,比如一个复杂的电商系统,可以包含多个index,product_index负责产品库,order_index负责订单库等。创建一个包含了type的index例子:

PUT blog_index 
{
  "mappings": {
    "user": { 
      "properties": { 
        "title":    { "type": "text"  }, 
        "name":     { "type": "text"  }, 
        "age":      { "type": "integer" }  
      }
    },
    "blogpost": { 
      "properties": { 
        "title":    { "type": "text"  }, 
        "body":     { "type": "text"  }, 
        "user_id":  {
          "type":   "keyword" 
        },
        "created":  {
          "type":   "date", 
          "format": "strict_date_optional_time||epoch_millis"
        }
      }
    }
  }
}

PUT blog_index 是创建index的命令,blog_index就是index的名字。

上面的例子创建了一个名为blog_index的index,包含了两个type,分别为user和blogpost。

版权声明:原创文章,欢迎转载,转载请注明出处和原文链接

Elasticsearch入门教程之一--基本概念

Elasticsearch入门教程之一–基本概念 概述 索引 检索 文档 文档类型 分片 副本 概述Elasticsearch基于Lucene(搜索引擎库)的开源搜索引擎,对外提供一系列基于Java和...
  • zhufenglonglove
  • zhufenglonglove
  • 2016年05月16日 10:16
  • 2078

ElasticSearch基本概念介绍(一)

1、概述 Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容...
  • eff666
  • eff666
  • 2016年09月05日 20:06
  • 796

Spring框架的基本概念

1.Spring框架与JavaEE平台的关系 Spring框架最早出现于2004年,正是为弥补JavaEE平台的不足而诞生。 JavaEE平台虽然提供了大量的标准组件,但是缺没有解决如何将这些独立的...
  • taiyangdao
  • taiyangdao
  • 2016年03月18日 14:50
  • 320

elasticsearch初学笔记及相关概念

elasticSearch基本概念及特性概念 基于lucene的开源搜索引擎,面向文档(document oriented)的。 集群(cluster) 一组具有相同cluster.name的节点集...
  • u012859681
  • u012859681
  • 2017年02月09日 20:19
  • 294

GPU中与CUDA相关的几个概念

GPU中与CUDA相关的几个概念 标签: cudathread任务编程存储 2012-06-04 12:42 2998人阅读 评论(0) 收藏 举报 分...
  • yu132563
  • yu132563
  • 2015年12月14日 22:06
  • 313

Elasticsearch 5.x 基本概念

1、Cluster(集群)   当同一网段(或可以ping通的)下,当集群的名称相同即可通过discover模块组成集群。集群名称在eaalsticsearch.yml中的cluster.name中进...
  • it_lihongmin
  • it_lihongmin
  • 2017年11月04日 23:07
  • 201

GPU&CUDA几个基本概念

本文介绍 GPU 和 CUDA 相关的几个基本概念:SP、SM、warp、thread、block 和 grid。其中 SP,SM,warp 是硬件(GPU hardware)概念,而 thread,...
  • s_sunnyy
  • s_sunnyy
  • 2017年02月28日 17:09
  • 379

ElasticSearch 简单入门helloworld

ElasticSearch 简单入门 返回原文英文原文:Getting Started with ElasticSearch Introduction Elast...
  • zl386119974
  • zl386119974
  • 2016年05月09日 16:21
  • 1126

ElasticSearch基本概念

一开始肯定不是很理解es中术语,照着这个对应关系就容易理解了: Elasticsearch的 index --> DB , Elasticsearch的type --> table, Elastics...
  • ZhouyuanLinli
  • ZhouyuanLinli
  • 2017年08月29日 16:01
  • 123

lucene和ElasticSearch基本概念

lucene和ElasticSearch基本概念
  • everlasting_188
  • everlasting_188
  • 2016年07月04日 18:37
  • 3204
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Elasticsearch上手——几个基本概念
举报原因:
原因补充:

(最多只允许输入30个字)