ZincSearch API 参考 - 创建索引

342 阅读1分钟

创建索引

创建新的索引

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 核心数,这样可以获得更好的性能。

参考地址:ZincSearch 文档