public CompressedPosting(TokenPosting posting) { RawData = new List <List <int> >(); Token = posting.Token; var docIds = posting.AllOccurrencesByDocumentId.Keys.OrderBy(x => x).ToList(); RawData.Add(docIds); foreach (var docOccurrence in posting.AllOccurrencesByDocumentId.OrderBy(x => x.Key).Select(x => x.Value)) { RawData.Add(docOccurrence.Positions.ToList()); } }
public TokenPosting Decompress(List <List <int> > decompressedData) { var result = new TokenPosting(Token); var docIds = decompressedData.First(); var i = 1; foreach (var docId in docIds) { result.GetOrCreateDocumentOccurrence(docId).Positions.AddRange(decompressedData[i]); i++; } return(result); }
public void AddPosting(string token, TokenPosting posting) { var cp = new CompressedPosting(posting); PostingsByToken.Add(token, cp); }