A Survey of Generative Information Retrieval