protected override TextWriter GetTextWriter(ulong id, ulong fieldId) { var payload = positionsWriter.StartPayload(); var key = PersistentIndex.GetKeyForPositions('T', id, fieldId); posIndexWriter.AddTerm(key, new PostingListAddress(payload), _ => throw new Exception("Not expected")); return(positionsWriter.StartTextPayload()); }
protected override void AddDocVector(ulong id, ulong fieldId, IEnumerable <TextPosition> positions) { var listStart = positionsWriter.StartList(); foreach (var pos in positions) { positionsWriter.AddValue((ulong)pos.Offset + 1); positionsWriter.AddValue((ulong)pos.Offset + 1 + (ulong)pos.Length); } var listEnd = positionsWriter.EndList(); var key = PersistentIndex.GetKeyForPositions('P', id, fieldId); posIndexWriter.AddTerm(key, new PostingListAddress(listStart), _ => throw new Exception("Not expected")); ++posUpdates; if (posUpdates > AutoCommitThreshold) { posIndexUpdate.Commit(); posIndexUpdate = posIndexWriter.BeginUpdate(); posUpdates = 0; } }