public DictionaryIndex(int rareWordThreshold) { wordIndex = new Dictionary <T, RangePostingsList>(); rareWordIndex = new Dictionary <T, IList <uint> >(); allDocuments = new RangePostingsList(); this.rareWordThreshold = rareWordThreshold; }
public void EmptyRangeTest() { var range = new RangePostingsList(); Assert.Empty(range); Assert.Equal(Array.Empty <DocumentId>(), range.ToArray()); }
public void RangeWithRepeatingDocIdTest() { var range = new RangePostingsList { 0, 1, 1, 1, 2, 3, 10, 11, 11, 11, 12 }; Assert.Equal(7, range.Count); Assert.Equal( new uint[] { 0, 1, 2, 3, 10, 11, 12 }.Select(u => new DocumentId(u)).ToArray(), range.ToArray()); }
public void IndexTerm(DocumentId id, string word, int position) { builder.TryGetValue(word, out var blockList); if (blockList == null) { blockList = new RangePostingsList(); builder.Insert(word, blockList); } blockList.Add(id); allDocuments.Add(id); }
public void RangeReadWriteTest() { var stream = new MemoryStream(); var rangePostings = new RangePostingsList() { 0, 1, 2, 10, 11, 12, 13, 14, 15, 100, 111 }; using var writer = new PostingsListWriter(stream); writer.Write(rangePostings); stream.Seek(0, SeekOrigin.Begin); using var reader = new PostingsListReader(stream, leaveOpen: false); var count = reader.ReadCount(0); var deserialized = reader.Read(0); Assert.Equal(rangePostings.Count, count); Assert.True(deserialized is RangePostingsList); Assert.Equal(rangePostings, deserialized); }
public DawgBuildableIndex() { builder = new DawgBuilder <RangePostingsList>(); allDocuments = new RangePostingsList(); }
private static void SerializePayload(BinaryWriter writer, RangePostingsList payload) { Serializer.SerializeWithLengthPrefix(writer.BaseStream, payload, PrefixStyle.Base128); }
public DawgSearchableIndex(Dawg <RangePostingsList> dawg, RangePostingsList allDocuments) { this.dawg = dawg; this.allDocuments = allDocuments; }