es索引的创建

es是一个分布式的文档数据库,索引的文档都是以json序列化形式存贮的,而不是像关系型数据库那样是列数据行的形式存贮的。
在es 7.0之前,常把es和关系型数据库的名词做如下映射

es mysql
index (索引) datasource(数据库)
type (类型) table
mapping column
document row

es的index相当于关系数据库的数据库,而type 相当于表,mapping表示某个type的字段的定义,document这相当于表的每条数据,
即一个index下面有多个type,多个type可以定义自己的mapping属性,而某个document则是一个json序列化后的数据
但在es7.0后,官方文档废弃type这层概念,理由是es同一个index下,不同的type,其实在都是根据_type元属性来区别的,在搜索的时候,根据_type来过滤,推荐同一个索引不同的type的mapping中字段要尽量相同,如果差异较大,则推荐定义不同的索引。文档的字段差异较少,有利于提高es的存贮空间的利用率和压缩率。而且不同的type中的mapping的相同名称的字段,在底层都存贮在同一个字段中。所以同名的字段的mapping必须相同否则会无法创建mapping。所以官方在7.0后,type不再被推荐使用。只有一个默认的type 是 “_doc”,即一个 index,一个type(默认_doc)。

1.如何和es交互

1.1 使用java client

es提供了java的sdk,可以通过java对es进行操作,java客户端分低级客户端,和高级客户端,还有已经不推荐使用的transport client。这些我们后续再细说。

2.1 使用restful api

es提供restful api接口,可通过http请求直接访问。
我们可以通过 curl,postman,kibana的dev-tools等工具轻易的和es进行交互。

例如curl请求格式如下
在这里插入图片描述

3.创建索引

**es的index我们可以预先定义好,包括索引的设置,mapping的定义,别名等。**也可以直接用默认的设置,直接添加文档,es会自动帮我们创建索引。帮我们定义mapping,但默认的不一定符合我们的需求。当然我们可以根据相关的api后续再去更改索引的配置

index的创建包括三部分:
settings:索引的基本配置,包括分片数,每个分片对应的复制数量,分词器等
mapping:属性的类型及其相关定义
aliases:索引别名的定义

```
这用kibana 的dev-tools工具,建立的一个简单的索引,它是一个简化的类似于curl的表达式。

查询我们刚刚创建的索引

GET my-index-000001
{
   
  "my-index-000001" : {
   
    "aliases" : {
    },
    "mappings" : {
   
      "properties" : {
   
        "title" : {
   
          "type" : "text",
          "analyzer" 
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值