|
|
@@ -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;
|
|
|
}
|
|
|
};
|