public FingerPrintHolder(string collectionName, sbyte collectionTag) { contextFingerPrints = new MongoDictionary(collectionName, collectionTag); titleFingerPrints = new MongoDictionary(collectionName, (sbyte)(collectionTag + 1)); }
private void CountMatch(int[] printList, MongoDictionary printHolder, Dictionary<string, int[]> matchCount, int idx) { for (int i = 0; i < printList.Length; ++i) { IDAndPubInfo[] items = printHolder.GetItemList(printList[i]); if (items == null || items.Length == 0) continue; for (int j = 0; j < items.Length; ++j) if ((DateTime.Now - items[j].PubDate) < DetectorFacade.DetectPeriod) { if (matchCount.ContainsKey(items[j].ItemID)) matchCount[items[j].ItemID][idx]++; else { int[] cnt = new int[2]; cnt[0] = cnt[1] = 0; cnt[idx] = 1; matchCount.Add(items[j].ItemID, cnt); } } } }
private void RegisterFingerPrints(string itemID, DateTime? pubDate, int[] printList, MongoDictionary printHolder) { for (int i = 0; i < printList.Length; ++i) { IDAndPubInfo[] items = printHolder.GetItemList(printList[i]); List<IDAndPubInfo> items_new = new List<IDAndPubInfo>((int)Math.Min(items == null ? 0 : items.Length + 1, 1000)); if (items != null) { for (int j = 0; j < items.Length; ++j) if ((DateTime.Now - items[j].PubDate) < DetectorFacade.DetectPeriod) items_new.Add(items[j]); } items_new.Add(new IDAndPubInfo(itemID, pubDate)); printHolder.PutbackItemList(printList[i], items_new.ToArray()); } }