Просмотр исходного кода

feat: add vectorDimension to CollectionOptions

fszontagh 4 месяцев назад
Родитель
Сommit
62130a91f9
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      service/src/document.hpp

+ 4 - 0
service/src/document.hpp

@@ -155,6 +155,7 @@ struct CollectionOptions {
     std::vector<std::string> sensitiveFields;   // Fields to always encrypt
     uint32_t maxVersions = 0;                    // Max version history per document (0 = unlimited)
     bool pinned = false;                         // If true, never evict documents from this collection
+    uint32_t vectorDimension = 0;                // Vector dimension for vector search (0 = disabled)
 
     [[nodiscard]] nlohmann::json toJson() const {
         nlohmann::json j;
@@ -164,6 +165,7 @@ struct CollectionOptions {
         j["sensitiveFields"] = sensitiveFields;
         j["maxVersions"] = maxVersions;
         j["pinned"] = pinned;
+        j["vector_dimension"] = vectorDimension;
         return j;
     }
 
@@ -175,6 +177,8 @@ struct CollectionOptions {
         opts.sensitiveFields = j.value("sensitiveFields", std::vector<std::string>{});
         opts.maxVersions = j.value("maxVersions", 0U);
         opts.pinned = j.value("pinned", false);  // Backward-compatible default
+        if (j.contains("vector_dimension") && j["vector_dimension"].is_number())
+            opts.vectorDimension = j["vector_dimension"].get<uint32_t>();
         return opts;
     }
 };