mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Fix for ACE-4417 Search by Aspect within a site returns results from all sites
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@114218 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -151,7 +151,7 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
}
|
}
|
||||||
StopWatch stopWatch = new StopWatch("database only");
|
StopWatch stopWatch = new StopWatch("database only");
|
||||||
stopWatch.start();
|
stopWatch.start();
|
||||||
ResultSet results = dbQueryLanguage.executeQuery(searchParameters, admLuceneSearcher);
|
ResultSet results = dbQueryLanguage.executeQuery(flattenDBQuery(searchParameters), admLuceneSearcher);
|
||||||
stopWatch.stop();
|
stopWatch.stop();
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
@@ -183,7 +183,7 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
logger.debug("Trying db query for "+dbQueryLanguage.getName()+" for "+searchParameters);
|
logger.debug("Trying db query for "+dbQueryLanguage.getName()+" for "+searchParameters);
|
||||||
}
|
}
|
||||||
stopWatch.start();
|
stopWatch.start();
|
||||||
ResultSet results = dbQueryLanguage.executeQuery(searchParameters, admLuceneSearcher);
|
ResultSet results = dbQueryLanguage.executeQuery(flattenDBQuery(searchParameters), admLuceneSearcher);
|
||||||
stopWatch.stop();
|
stopWatch.stop();
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
@@ -247,6 +247,27 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SearchParameters flattenDBQuery(SearchParameters sp)
|
||||||
|
{
|
||||||
|
if (sp.getFilterQueries().size() == 0)
|
||||||
|
{
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SearchParameters flatten = sp.copy();
|
||||||
|
StringBuilder queryBuilder = new StringBuilder();
|
||||||
|
|
||||||
|
queryBuilder.append("( ").append(sp.getQuery()).append(" )");
|
||||||
|
for(String filter : sp.getFilterQueries())
|
||||||
|
{
|
||||||
|
queryBuilder.append("AND ( ").append(filter).append(" )");
|
||||||
|
}
|
||||||
|
flatten.setQuery(queryBuilder.toString());
|
||||||
|
// the filter can be left and will be ignored by the DB query
|
||||||
|
return flatten;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ResultSet executeHybridQuery(SearchParameters searchParameters,
|
private ResultSet executeHybridQuery(SearchParameters searchParameters,
|
||||||
ADMLuceneSearcherImpl admLuceneSearcher)
|
ADMLuceneSearcherImpl admLuceneSearcher)
|
||||||
|
Reference in New Issue
Block a user