创建索引

创建新的索引

POST /api/index

更新索引

PUT /api/index

当你尝试更新一个不存在的索引时,它将自动创建一个新的索引。

虽然您不需要手动创建索引,因为索引会在您开始摄取数据时自动创建,但您可以使用此 API 提前创建索引。

请求 Request

例子:POST http://localhost:4080/api/index

请求体

  1. {
  2. "name": "article",
  3. "storage_type": "disk",
  4. "shard_num": 1,
  5. "mappings": {
  6. "properties": {
  7. "title": {
  8. "type": "text",
  9. "index": true,
  10. "store": true,
  11. "highlightable": true
  12. },
  13. "content": {
  14. "type": "text",
  15. "index": true,
  16. "store": true,
  17. "highlightable": true
  18. },
  19. "status": {
  20. "type": "keyword",
  21. "index": true,
  22. "sortable": true,
  23. "aggregatable": true
  24. },
  25. "publish_date": {
  26. "type": "date",
  27. "format": "2006-01-02T15:04:05Z07:00",
  28. "index": true,
  29. "sortable": true,
  30. "aggregatable": true
  31. }
  32. }
  33. }
  34. }

使用分片 Shards

我们在创建索引时添加了 shard_num 选项。如果您没有设置此字段,它将具有默认值。默认的分片数为 3。

您可以通过环境变量 ZINC_SHARD_NUM 更改默认值。

如果您没有太多文档或性能问题,您可以将 shard_num 设置为 1,这样相对简单一点。

什么是分片

分片是一种提高性能的解决方案,它允许我们进行并发的写入和读取操作。

在创建索引时,我们会设置一个 shardsNum,默认为3。

当我们写入文档时,我们将使用 docID 进行哈希分配,然后将文档分发到不同的分片中。

一个分片实际上是后端索引,它可以接受数据并将其写入存储。

有了分片,它还为我们提供了并行读取的能力,从而提高了查询速度。

我们建议将 ZINC_SHARD_NUM 设置为等于或小于您的 CPU 核心数,这样可以获得更好的性能。