To find content based on more complex search queries, such as using Alfresco Full Text Search (AFTS), use the SearchApi,;
For more information about this ReST API endpoint, see Finding Content by a Search Query.
For a description of the common parameters, such as include, see Common Parameters.
import org.alfresco.search.handler.SearchApi; import org.alfresco.search.model.RequestQuery; import org.alfresco.search.model.ResultSetPaging; import org.alfresco.search.model.ResultSetRowEntry; import org.alfresco.search.model.SearchRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.List; @Component public class SearchCmd { static final Logger LOGGER = LoggerFactory.getLogger(SearchCmd.class); @Autowired SearchApi searchApi; /** * Search in a site * * @param siteId the site id * @param term the term to search for in the site */ public void execute(String siteId, String term) throws IOException { List<ResultSetRowEntry> result = search("(SITE:\"" + siteId + "\" AND TEXT:\"" + term + "\" )"); LOGGER.info("Search result: {}", result); } /** * Search the repository for content using an Alfresco Full Text Search (AFTS) query * * @param aftsQuery the query statement * @return a list of search results */ List<ResultSetRowEntry> search(String aftsQuery) { ResponseEntity<ResultSetPaging> result = searchApi.search(new SearchRequest() .query(new RequestQuery() .language(RequestQuery.LanguageEnum.AFTS) .query(aftsQuery))); return result.getBody().getList().getEntries(); } }