From eb6f7ef52470d48155902756906f96eaac607642 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Sun, 14 Dec 2025 14:40:00 +0100 Subject: [PATCH] Fixed requested value LVEWAvg was not found, improved resiliency --- src/Server/Probmethods.cs | 5 ++--- src/Server/Searchdomain.cs | 35 ++++++++++++++++++++++------------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/Server/Probmethods.cs b/src/Server/Probmethods.cs index 34d6a86..0a17a86 100644 --- a/src/Server/Probmethods.cs +++ b/src/Server/Probmethods.cs @@ -29,7 +29,7 @@ public enum ProbMethodEnum GeometricMean, EVEWAvg, HVEWAvg, - LVEWavg, + LVEWAvg, DictionaryWeightedAverage } @@ -49,7 +49,7 @@ public static class Probmethods [ProbMethodEnum.GeometricMean] = GeometricMean, [ProbMethodEnum.EVEWAvg] = ExtremeValuesEmphasisWeightedAverage, [ProbMethodEnum.HVEWAvg] = HighValueEmphasisWeightedAverage, - [ProbMethodEnum.LVEWavg] = LowValueEmphasisWeightedAverage, + [ProbMethodEnum.LVEWAvg] = LowValueEmphasisWeightedAverage, [ProbMethodEnum.DictionaryWeightedAverage] = DictionaryWeightedAverage }; } @@ -66,7 +66,6 @@ public static class Probmethods methodName = name[..colonIndex]; jsonArg = name[(colonIndex + 1)..]; } - ProbMethodEnum probMethodEnum = (ProbMethodEnum)Enum.Parse( typeof(ProbMethodEnum), methodName diff --git a/src/Server/Searchdomain.cs b/src/Server/Searchdomain.cs index b7320ca..a3e4100 100644 --- a/src/Server/Searchdomain.cs +++ b/src/Server/Searchdomain.cs @@ -1,5 +1,6 @@ using System.Data; using System.Data.Common; +using ElmahCore.Mvc.Logger; using MySql.Data.MySqlClient; using Server.Helper; @@ -54,21 +55,29 @@ public class Searchdomain Dictionary> embedding_unassigned = []; while (embeddingReader.Read()) { - int id_datapoint = embeddingReader.GetInt32(1); - string model = embeddingReader.GetString(2); - long length = embeddingReader.GetBytes(3, 0, null, 0, 0); - byte[] embedding = new byte[length]; - embeddingReader.GetBytes(3, 0, embedding, 0, (int) length); - if (embedding_unassigned.TryGetValue(id_datapoint, out Dictionary? embedding_unassigned_id_datapoint)) + int id_datapoint; + try { - embedding_unassigned[id_datapoint][model] = SearchdomainHelper.FloatArrayFromBytes(embedding); - } - else - { - embedding_unassigned[id_datapoint] = new() + id_datapoint = embeddingReader.GetInt32(1); + string model = embeddingReader.GetString(2); + long length = embeddingReader.GetBytes(3, 0, null, 0, 0); + byte[] embedding = new byte[length]; + embeddingReader.GetBytes(3, 0, embedding, 0, (int) length); + if (embedding_unassigned.TryGetValue(id_datapoint, out Dictionary? embedding_unassigned_id_datapoint)) { - [model] = SearchdomainHelper.FloatArrayFromBytes(embedding) - }; + embedding_unassigned[id_datapoint][model] = SearchdomainHelper.FloatArrayFromBytes(embedding); + } + else + { + embedding_unassigned[id_datapoint] = new() + { + [model] = SearchdomainHelper.FloatArrayFromBytes(embedding) + }; + } + } catch (Exception e) + { + _logger.LogError("Error reading embedding (id: {id_datapoint}) from database: {e.Message} - {e.StackTrace}", [id_datapoint, e.Message, e.StackTrace]); + ElmahCore.ElmahExtensions.RaiseError(e); } } embeddingReader.Close();