Improve Lucene search and refactor following SRP