创建索引
创建新的索引
POST /api/index
更新索引
PUT /api/index
当你尝试更新一个不存在的索引时,它将自动创建一个新的索引。
虽然您不需要手动创建索引,因为索引会在您开始摄取数据时自动创建,但您可以使用此 API 提前创建索引。
请求 Request
例子:POST http://localhost:4080/api/index
请求体
{
"name": "article",
"storage_type": "disk",
"shard_num": 1,
"mappings": {
"properties": {
"title": {
"type": "text",
"index": true,
"store": true,
"highlightable": true
},
"content": {
"type": "text",
"index": true,
"store": true,
"highlightable": true
},
"status": {
"type": "keyword",
"index": true,
"sortable": true,
"aggregatable": true
},
"publish_date": {
"type": "date",
"format": "2006-01-02T15:04:05Z07:00",
"index": true,
"sortable": true,
"aggregatable": true
}
}
}
}
使用分片 Shards
我们在创建索引时添加了 shard_num
选项。如果您没有设置此字段,它将具有默认值。默认的分片数为 3。
您可以通过环境变量 ZINC_SHARD_NUM
更改默认值。
如果您没有太多文档或性能问题,您可以将 shard_num
设置为 1,这样相对简单一点。
什么是分片
分片是一种提高性能的解决方案,它允许我们进行并发的写入和读取操作。
在创建索引时,我们会设置一个 shardsNum
,默认为3。
当我们写入文档时,我们将使用 docID 进行哈希分配,然后将文档分发到不同的分片中。
一个分片实际上是后端索引,它可以接受数据并将其写入存储。
有了分片,它还为我们提供了并行读取的能力,从而提高了查询速度。
我们建议将 ZINC_SHARD_NUM 设置为等于或小于您的 CPU 核心数,这样可以获得更好的性能。