es创建索引(mapping和setting)
在Elasticsearch中创建索引时,可以同时定义mapping(用于定义文档的字段和它们的数据类型)和settings(用于配置不同的集群和索引级别的设置)。以下是一个Python代码示例,使用官方的elasticsearch
库来创建一个索引,并同时定义mapping和settings:
from elasticsearch import Elasticsearch
# 连接到Elasticsearch
es = Elasticsearch("http://localhost:9200")
# 索引名称
index_name = 'my_index'
# 定义mapping
mapping = {
"mappings": {
"properties": {
"title": {
"type": "text"
},
"content": {
"type": "text"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
# 定义settings
settings = {
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
# 创建索引,并同时指定mapping和settings
es.indices.create(index=index_name, body=mapping, ignore=400) # 忽略400错误,例如索引已存在
es.indices.put_settings(index=index_name, body=settings)
在这个例子中,我们首先连接到Elasticsearch。然后定义了索引名称和mapping,其中包括了三个字段:title
、content
和date
。接着定义了settings,指定了分片数和副本数。最后,我们创建索引,并在创建后设置配置。如果索引已经存在,indices.create
方法将抛出异常,可以通过ignore=400
来忽略这个异常。
评论已关闭