c语言编程笔录

首页 >   > 笔记大全

笔记大全

es如何创建索引和mapping

更新时间:2023-10-28

创建Elasticsearch索引

在Elasticsearch中,我们通过定义一个索引来声明我们要将哪些文档存储在集群中。创建索引需要提供索引名称并且指定分片和备份的数量。以下是一个示例代码段:

PUT /my_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  }
}

在这个例子中,我们创建了一个名为“my_index”的索引,同时指定了分片数量为1,备份数量为0。

创建Elasticsearch Mapping

在Elasticsearch中,Mapping用于定义数据结构,包括每个字段的类型、分析器和索引选项。我们可以通过在创建索引时提供一个映射来定义Elasticsearch文档的结构。以下是一个示例代码段:

PUT my_index/_mapping
{
  "properties": {
    "title": {
      "type": "text"
    },
    "description": {
      "type": "text"
    },
    "price": {
      "type": "float"
    },
    "in_stock": {
      "type": "boolean"
    },
    "created_at": {
      "type": "date",
      "format": "yyyy-MM-dd HH:mm:ss"
    }
  }
}

在这个例子中,我们定义了一个包含title、description、price、in_stock和created_at字段的文档。每个字段都有一个类型,包括text、float、boolean和date,并且created_at字段具有指定格式的日期类型。

索引文档

创建完索引和mapping之后,我们可以将文档索引到Elasticsearch中。以下是一个示例代码段:

POST /my_index/_doc
{
  "title": "商品1",
  "description": "这是商品1的描述",
  "price": 10.99,
  "in_stock": true,
  "created_at": "2021-01-01 00:00:00"
}

在这个例子中,我们将一个包含title、description、price、in_stock和created_at字段的文档索引到了my_index索引中。Elasticsearch通过使用之前定义的mapping确定了每个字段的类型。

查询数据

当我们将数据索引到Elasticsearch中后,我们可以使用各种查询语句来检索数据。以下是一个示例代码段:

GET /my_index/_search
{
  "query": {
    "match": {
      "description": "商品"
    }
  },
  "sort": [
    {
      "created_at": {
        "order": "desc"
      }
    }
  ]
}

在这个例子中,我们使用了一个match查询来检索my_index索引中的文档。我们还指定了排序规则,按照创建日期降序排列。

总结:在Elasticsearch中,我们可以通过创建索引、定义映射、索引文档和查询数据来存储和检索数据。创建索引需要提供索引名称和分片、副本数量,定义映射用于定义数据结构,包括每个字段的类型、分析器和索引选项,可以根据实际需求自定义。索引文档需要提供文档的数据以及对应字段的值,Elasticsearch会根据之前定义的映射确定每个字段的类型。查询数据可通过各种查询语句来检索数据,可以根据数据的各种特性来进行不同类型的查询。