public SearchResults search(String queryString) throws SearchException {
log.debug("Performing search : " + queryString);
SearchResults searchResults = new SearchResults();
searchResults.setQuery(queryString);
if (queryString != null && queryString.length() > 0) {
Searcher searcher = null;
try {
searcher = new IndexSearcher(blog.getSearchIndexDirectory());
Query query = QueryParser.parse(queryString, "blogEntry", getAnalyzer());
Hits hits = searcher.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
SearchHit result = new SearchHit(
blog,
doc.get("id"),
doc.get("permalink"),
doc.get("title"),
doc.get("truncatedBody"),
DateField.stringToDate(doc.get("date")),
hits.score(i));
searchResults.add(result);
}
} catch (ParseException pe) {
pe.printStackTrace();
searchResults.setMessage("Sorry, but there was an error. Please try another search");
} catch (Exception e) {
e.printStackTrace();
throw new SearchException(e.getMessage());
} finally {
if (searcher != null) {