return phraseQuery;
}
private Query rewriteQuery(SearchQuery searchQuery, boolean prefix, Query query)
{
VisitableQuery visitableQuery = new VisitableQuery(query);
visitableQuery.accept(uppercaseNameExpander);
visitableQuery.accept(lowercaseConverter);
if( searchQuery.isFuzzy() )
visitableQuery.accept(queryFuzzifier);
visitableQuery.accept(csvExpander);
visitableQuery.accept(fieldAliasConverter);
visitableQuery.accept(modifiedTimeConverter);
visitableQuery.accept(folderSearcher);
if( prefix && !searchQuery.isFuzzy() ) // prefix last term query for substring search while typing
visitableQuery.accept(lastTermQueryPrefixer);
if( searchQuery.getFilter() != null )
{
filterSetter.setFilter( searchQuery.getFilter() );
visitableQuery.accept(filterSetter);
}
visitableQuery.accept(workingSetExpander);
if( searchQuery.getCurrentProject() != null )
{
currentProjectSetter.setCurrentProject(searchQuery.getCurrentProject());
visitableQuery.accept(currentProjectSetter);
}
return visitableQuery.getQuery(); // the modified query after all visitors
}