diff --git a/index/secondary_index_manager.cc b/index/secondary_index_manager.cc index b21b7ee0a1..e57c9096ff 100644 --- a/index/secondary_index_manager.cc +++ b/index/secondary_index_manager.cc @@ -362,12 +362,14 @@ std::optional secondary_index_manager::custom_index_class(const schema& // This function returns a factory, as the custom index class should be lightweight, preferably not holding any state. // We prefer this over a static custom index class instance, as it allows us to avoid any issues with thread safety. std::optional()>> secondary_index_manager::get_custom_class_factory(const sstring& class_name) { + sstring lower_class_name = class_name; + std::transform(lower_class_name.begin(), lower_class_name.end(), lower_class_name.begin(), ::tolower); const static std::unordered_map()>> classes = { {"vector_index", vector_index_factory}, }; - if (auto class_it = classes.find(class_name); class_it != classes.end()) { + if (auto class_it = classes.find(lower_class_name); class_it != classes.end()) { return class_it->second; } else { return std::nullopt; diff --git a/index/vector_index.cc b/index/vector_index.cc index d5ed937cab..22bf63da1f 100644 --- a/index/vector_index.cc +++ b/index/vector_index.cc @@ -38,7 +38,9 @@ static void validate_unsigned_option(const sstring& value) { } static void validate_similarity_function(const sstring& value) { - if (value != "COSINE" && value != "EUCLIDEAN" && value != "DOT_PRODUCT") { + sstring similarity_function = value; + std::transform(similarity_function.begin(), similarity_function.end(), similarity_function.begin(), ::tolower); + if (similarity_function != "cosine" && similarity_function != "euclidean" && similarity_function != "dot_product") { throw exceptions::invalid_request_exception(format("Unsupported similarity function: {}", value)); } }