其他分享
首页 > 其他分享> > Elasticsearch全文搜索-索引的建立

Elasticsearch全文搜索-索引的建立

作者:互联网

扫码关注持续好文

索引简介

    索引是具有相同结构的文档集合,我们对elasticsearch的大部分操作都是 基于索引来完成,在Elasticsearch中,文档归属于一种 类型(type) ,在 5.X 版本中,一个 index 下可以创建多个 type;在 6.X 版本中,一个 index 下只能存在一个 type;在 7.X 版本中,直接去除了 type 的概念,就是说 index 不再会有 type。而类型存在于索引(index)中。

与关系型数据库类比

Elasticsearch

Oracle

Index

Database

Type

Table

Document

Row

Field

Column

Mapping

Schema (表类型)

数据库表行列  Elasticsearch ⇒Indices ⇒Types ⇒ Documents ⇒ FieldsEls 索引类型文档域(字段)

2.也没有oracle的用户的概念,es有安全控制是通过xpack实现,但是是针对访问全局的安全控制。

3.另外也不支持类似数据库中通过外键的复杂的多表关联操作。

索引管理

创建索引

PUT /user_info

图片

可以看出默认是一个分片一个副本,副本未分配,一个索引的分片数一经创建后不能在修改,虽然新版提供了修改功能,但是我们可以看到它修改后也是新建立的索引,原来的索引并没有变化。

     创建索引与创建关系型数据库是一样的,注意elasticsearch索引名不能出现大写字母,如有多个字母一下划线区分。如创建用户信息 user_info

 

查看索引

    使用GET方法加上_setting参数可以查看一个索引的所有配置信息,例如查看user_info索引的设置信息,命令如下:

GET user_info/_settings

图片

查看配置可以看到确实是number_of_shards一个number_of_replicas一个

   修改索引的副本,es支持已经存在的索引副本修改,我们把user_info修改2个副本

1、dsl修改

PUT user_info/_settings

{

 "number_of_replicas":2

}

 

查看索引信息

图片

索引别名

    索引别名就是给一个索引或者多个索引起的另一个名字,索引别名是一个非常有用的功能,尤其在数据要重新导入时可以很优雅的切换数据为名为user_info的索引,创建别名user_info_alicas。

PUT  /_aliases

{

      "actions":[{"add":{"index":"user_info","alias":"user_info_alicas"}}]

}

可以看到已经给user_info建立了索引

图片

移除别名:

PUT   /_aliases

{

"actions":[{"remove":{"index":"user_info","alias":"user_info_alicas"}}]

}

索引模板

   针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(settings和mappings)的话就很麻烦了。所以,这个时候,就存在创建索引模板的必要了。

PUT _template/template_1

{

  "index_patterns": ["te*", "bar*"],

  "settings": {

    "number_of_shards": 1

  },

  "mappings": {

      "_source": {

        "enabled": false

      },

      "properties": {

        "host_name": {

          "type": "keyword"

        },

        "created_at": {

          "type": "date",

          "format": "yyyy-MM-dd"

        }

      }

  }

}

DELETE /_template/template_1

标签:info,index,创建,索引,Elasticsearch,user,type,全文
来源: https://blog.csdn.net/test_test111/article/details/116106005