Improving Code Search Using Learning-to-Rank and Query Reformulation Techniques