SEARCH-347, fix to skip TMDQ when faceting is involved

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@136049 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Michael Suzuki
2017-03-23 11:20:05 +00:00
parent 8bb66c2e40
commit 9a04e4b078

View File

@@ -182,7 +182,8 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
case TRANSACTIONAL_IF_POSSIBLE:
default:
StopWatch stopWatch = new StopWatch("DB if possible");
if(dbQueryLanguage != null)
//SEARCH-347, exclude TMDQ calls if faceting present.
if(dbQueryLanguage != null && !hasFaceting(searchParameters))
{
try
{
@@ -251,8 +252,6 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
}
throw new QueryModelException("No query language available");
}
}
private SearchParameters flattenDBQuery(SearchParameters sp)
@@ -285,6 +284,24 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
}
}
/**
* Checks if faceted fields or faceted queries are present if so it needs
* to be excluded from the TMDQ call.
* @param searchParameters
* @return true if exists
*/
private boolean hasFaceting(SearchParameters searchParameters)
{
if(searchParameters.getFacetQueries() != null && !searchParameters.getFacetQueries().isEmpty())
{
return true;
}
if(searchParameters.getFieldFacets() != null && !searchParameters.getFieldFacets().isEmpty())
{
return true;
}
return false;
}
private ResultSet executeHybridQuery(SearchParameters searchParameters,
ADMLuceneSearcherImpl admLuceneSearcher)
{