final Integer from, final int count, final Boolean exact,
final List<Searcher> searchers)
throws NoSuchRepositoryException, ResourceException, IOException
{
try {
Searcher searcher = null;
for (Searcher _searcher : searchers) {
if (_searcher.canHandle(terms)) {
searcher = _searcher;
}
}
if (searcher == null) {
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "Requested search query is not supported");
}
SearchType searchType = searcher.getDefaultSearchType();
if (exact != null) {
searchType = exact ? SearchType.EXACT : SearchType.SCORED;
}
final IteratorSearchResponse searchResponse =
searcher.flatIteratorSearch(terms, repositoryId, from, count, null, false, searchType, null/* filters */);
return searchResponse;
}
catch (IllegalArgumentException e) {
if (e.getCause() instanceof ParseException) {