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会根据之前定义的映射确定每个字段的类型。查询数据可通过各种查询语句来检索数据,可以根据数据的各种特性来进行不同类型的查询。