private void LearnCommandForInput(IndexWriter writer, IndexReader reader, DocumentId completionId, string input)
{
// fickle command, isn't learnable
if (completionId == null) return;
var document = CoreDocument.Rehydrate(PopDocument(writer, reader, completionId.GetId()));
if (document == null)
throw new InvalidOperationException(string.Format("Didn't find command {0}", completionId));
var learnings = _learningRepository.LearnFor(input, completionId.GetLearningId());
document.SetLearnings(learnings);
writer.AddDocument(document);
}