Exemplo n.º 1
0
    public static IEnumerable AddFilterToSnap(SqlBytes arrayBinary, short snap, int phkey)
    {
        List<object[]> results = new List<object[]>();

            SqlBigIntArrayMax myIds = new SqlBigIntArrayMax(arrayBinary);

            const int expectedFilterCapacity = 1000;
            float errorRate = BloomFilter.Filter<long>.bestErrorRate(expectedFilterCapacity);
            int hashFunctions = BloomFilter.Filter<long>.bestK(expectedFilterCapacity, errorRate);
            BloomFilter.Filter<long> filter = new BloomFilter.Filter<long>(expectedFilterCapacity, errorRate, hashFunctions);

            long[] idsArray = myIds.ToArray();
            for (int i = 0; i < idsArray.Length; i++)
            {
                filter.Add(idsArray[i]);
            }
            object[] item = { snap, phkey, filter.convertToByteArray(), hashFunctions, expectedFilterCapacity };
            results.Add(item);
            return results;
            //finalFilter = filter.convertToByteArray();
    }
 public DefaultPreFilterService(IStoreService storeService)
 {
     this.storeService = storeService;
     filter            = BloomFilter.FilterBuilder.Build <string>(int.MaxValue);
 }
 public URLStorageBloomFilter(int maxItems)
 {
     bloomFilter = new BloomFilter.Filter<string>(maxItems);
 }
Exemplo n.º 4
0
 public static SqlInt32 checkFilterForId(SqlBinary filterAsBinary, SqlInt64 id, SqlInt32 hashFunctions)
 {
     BloomFilter.Filter<long> filter = new BloomFilter.Filter<long>((byte[])filterAsBinary, (int)hashFunctions);
         return filter.Contains((long)id) ? 1 : 0;
 }