Elasticsearch

Elasticsearch-入门

2020-12-24  本文已影响0人  WebGiser

环境:Centos7、Docker、Elasticsearch7.8.0、Kibana7.8.0

image.png
image.png

基本概念

1、索引(index):一个索引就是一个拥有几分相似特征的文档的集合。索引类似于关系型数据库中Database的概念。
2、类型(type):在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。类型类似于关系型数据库中Table的概念。
3、文档(document):一个文档是一个可被索引的基础信息单元,文档以JSON格式来表示。 在一个index/type里面,你可以存储任意多的文档。文档类似于关系型数据库中Record的概念。实际上一个文档除了用户定义的数据外,还包括_index、_type和_id字段。
4、分片和复制(shards & replicas):一个索引可以存储超出单个结点硬件限制的大量数据。分片允许你水平分割/扩展你的内容容量,允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量。
5、映射(mapping):mapping类似于传统关系型数据中table的schema,用于定义一个索引(index)的某个类型(type)的数据结构。
注意:elasticsearch 7.x版本之后已经彻底去除了type的概念,elasticsearch7默认不再支持指定索引类型,默认索引类型是_doc。index下面不再允许设置type。直接给某个index设置mapping即可。相当于index就是mysql数据库中的dabase.table了。

数据类型

下表列出的是ES中所支持的数据类型。(大类是对所有类型的一种归类,小类是实际使用的类型)


image.png

ES Restful API基本使用

1、集群和节点API

// 查看集群健康信息
GET _cat/health?help

// 查看集群中的节点信息
GET _cat/nodes?v

2、索引API

// 查看集群中的索引信息
GET _cat/indices?v

// 创建一个新的索引
PUT index_test

// 删除索引
DELETE index_test

3、映射API

// 查看索引的mapping
GET index_test/_mapping?pretty

// 创建索引的mapping
PUT index_test/_mappings 
{
    "properties": {
        "name": {
            "type": "text"
        },
        "age": {
            "type": "integer"
        },
        "sex":{
            "type": "boolean"
        },
        "money":{
            "type": "double"
        },
        "createDate":{
            "type": "date"
        }
    }
}

// 同时创建索引和mapping
PUT index_test2
{
    "mappings":{
        "properties": {
            "name": {
                "type": "text"
            },
            "age": {
                "type": "integer"
            },
            "sex":{
                "type": "boolean"
            },
            "money":{
                "type": "double"
            },
            "createDate":{
                "type": "date"
            }
        }
    }
}

4、文档API

// 查看文档
GET index_test/_doc/1?pretty
// 查看索引下的所有文档
GET index_test/_doc/_search

// 增加文档(指定id)
PUT index_test/_doc/1
{
    "name": "张三",
    "age": 20,
    "sex": "true",
    "money": "100.5",
    "createDate": "2020-10-05"
}
// 增加文档(id自动生成)
POST index_test/_doc
{
    "name": "李四",
    "age": 20,
    "sex": "true",
    "money": "100.5",
    "createDate": "2020-10-05"
}

// 修改文档
POST index_test/_doc/1
{
    "name": "aaa"
}

// 删除文档
DELETE index_test/_doc/1

DSL特定语法检索和过滤-kibana

GET index_test/_doc/_search
{
    "query": { 
        "match": {
            "name": "四"
        } 
    },
    "sort": [
        { "age": "asc" }
    ]
}
上一篇下一篇

猜你喜欢

热点阅读