Information retrieval architecture and algorithms