Proactive search: Using outcome-based dynamic nearest-neighbor recommendation algorithms to improve search engine efficacy