コード例 #1
0
        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);
        }
コード例 #2
0
        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);
             */
        }
コード例 #3
0
        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();
//            }
        }
コード例 #4
0
        public override int GetHashCode()
        {
            var content = GetValue();

            return((int)HashAlgos.Adler32(content));
        }