public uint AddHashWithIndex(string prefix, Dictionary <string, object> aggKeyBuff) { var hashItem = JsonConvert.SerializeObject(aggKeyBuff); var hashIx = HashAlgos.Adler32(hashItem); var key = $"{prefix}:cacheGroup:{hashIx}"; _cacher.SetAdd(key, hashItem); return(hashIx); }
public DonutCodeFeatureDefinition GetTemplate(CallExpression exp, DonutCodeContext ctx) { var rootIgn = ctx.Script.GetRootIntegration(); var expVisitor = new DonutFeatureGeneratingExpressionVisitor(ctx.Script); var callParam = exp.Parameters.FirstOrDefault(); var parameterTarget = expVisitor.Visit(callParam); if (parameterTarget.ToString() == "document[\"\"]") { return(DonutCodeFeatureDefinition.Empty); } var buffGather = new StringBuilder(); var buffExtract = new StringBuilder(); var paramHash = HashAlgos.Adler32(callParam.ToString()); string featureKey = $"nu_{rootIgn.Name}_{paramHash}"; var categoryValue = "groupKey"; //Use the group key generated from DonutScriptCodeGenerator.. string ordered = "true"; string varCategory = $"{featureKey}_cat"; string varValue = $"{featureKey}_val"; string varCategoryVal = $"var {varCategory} = {categoryValue};"; string varValueVal = $"var {varValue} = {parameterTarget}.ToString();"; buffGather.AppendLine(varCategoryVal); buffGather.AppendLine(varValueVal); buffGather.AppendLine($"Context.AddEntityMetaCategory(\"{featureKey}\", {varCategory}, {varValue}, {ordered});"); buffExtract.AppendLine($"Context.GetSetSize(\"{featureKey}\")"); var featureDef = new DonutCodeFeatureDefinition() { PrepareScript = buffGather.ToString(), ExtractionScript = buffExtract.ToString() }; //Feature value: //Context.GetSetSize() // //Define a nameOfTheResultCache, category, value //Set the value in the cache return(featureDef); /** * Example * //Extraction goes in here * var nuRomanianpm25Category = 1; * var nuRomanianpm25Value = intDoc["pm25"].ToString(); * Context.AddEntityMetaCategory("nu_Romanian.pm25", nuRomanianpm25Category, nuRomanianpm25Value, true); */ }
public string GetHashCode() { var val = GetValue(); var adhash = HashAlgos.Adler32(val); return(adhash.ToString()); // using (MD5 md5Hash = MD5.Create()) // { // byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(val)); // // // Create a new Stringbuilder to collect the bytes // // and create a string. // StringBuilder sBuilder = new StringBuilder(); // // // Loop through each byte of the hashed data // // and format each one as a hexadecimal string. // for (int i = 0; i < data.Length; i++) // { // sBuilder.Append(data[i].ToString("x2")); // } // // return sBuilder.ToString(); // } }
public override int GetHashCode() { var content = GetValue(); return((int)HashAlgos.Adler32(content)); }