public static ReadableIndex DeserializeFromDisk(string filePath) { using (Stream stream = File.Open(filePath, FileMode.Open)) { return(ReadableIndex.Deserialize(stream)); } }
public static ReadableIndex Deserialize(Stream stream) { var options = (IndexOptions)(new BinaryFormatter()).Deserialize(stream); var reader = new BinaryReader(stream); int documents = reader.ReadInt32(); int storeSize = reader.ReadInt32(); var index = new ReadableIndex(options, documents, storeSize); // documents for (var i = 0; i < documents; i++) { index._documents.Add(reader.ReadString()); } for (var i = 0; i < documents; i++) { index._documentLength.Add(reader.ReadInt32()); } // store for (int n = 0; n < storeSize; n++) { var keyLength = reader.ReadInt32(); var key = reader.ReadChars(keyLength); var listSize = reader.ReadInt32(); var list = new List <PostingEntry>(listSize); for (int l = 0; l < listSize; l++) { list.Add(new PostingEntry(reader.ReadInt32(), reader.ReadUInt16())); } index._store.Add(key, list); } return(index); }