Class SearchServiceImpl
- java.lang.Object
- 
- ubic.gemma.core.search.SearchServiceImpl
 
- 
- All Implemented Interfaces:
- InitializingBean,- SearchService
 
 @Service public class SearchServiceImpl extends Object implements SearchService, InitializingBean This service is used for performing searches using free text or exact matches to items in the database.Implementation notesInternally, there are generally two kinds of searches performed, precise database searches looking for exact matches in the database and compass/lucene searches which look for matches in the stored index. To add more dependencies to this Service edit the applicationContext-search.xml- Author:
- klc, paul, keshav
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface ubic.gemma.core.search.SearchServiceSearchService.SearchResultMap
 
- 
 - 
Constructor SummaryConstructors Constructor Description SearchServiceImpl()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()voidcanConvertFromId(Class<? extends IdentifiableValueObject<?>> to)Set<String>getFields(Class<? extends Identifiable> resultType)Obtain a list of fields that can be searched on for the given result type.Set<Class<? extends Identifiable>>getSupportedResultTypes()Returns a set of supported result types.<T extends Identifiable,U extends IdentifiableValueObject<T>>
 SearchResult<U>loadValueObject(SearchResult<T> searchResult)Convert aSearchResultto its VO flavour.List<SearchResult<? extends IdentifiableValueObject<?>>>loadValueObjects(Collection<SearchResult<?>> searchResults)Convert a collection ofSearchResultto their VO flavours.SearchService.SearchResultMapsearch(SearchSettings settings)The results are sorted in order of decreasing score, organized by class.
 
- 
- 
- 
Method Detail- 
getFieldspublic Set<String> getFields(Class<? extends Identifiable> resultType) Description copied from interface:SearchServiceObtain a list of fields that can be searched on for the given result type.- Specified by:
- getFieldsin interface- SearchService
 
 - 
search@Transactional(readOnly=true) public SearchService.SearchResultMap search(SearchSettings settings) throws SearchException Description copied from interface:SearchServiceThe results are sorted in order of decreasing score, organized by class. The following objects can be searched for, depending on the configuration of the input object.- Genes
- ExpressionExperiments
- CompositeSequences (probes)
- ArrayDesigns (platforms)
- Characteristics (e.g., Ontology annotations)
- BioSequences
- BibliographicReferences (articles)
 - Specified by:
- searchin interface- SearchService
- Parameters:
- settings- settings
- Returns:
- Map of Class to SearchResults. The results are already filtered for security considerations.
- Throws:
- SearchException
 
 - 
getSupportedResultTypespublic Set<Class<? extends Identifiable>> getSupportedResultTypes() Description copied from interface:SearchServiceReturns a set of supported result types.This is mainly used to perform a search for everything via SearchSettings#getResultTypes().- Specified by:
- getSupportedResultTypesin interface- SearchService
 
 - 
afterPropertiesSetpublic void afterPropertiesSet() throws Exception- Specified by:
- afterPropertiesSetin interface- InitializingBean
- Throws:
- Exception
 
 - 
canConvertFromIdpublic void canConvertFromId(Class<? extends IdentifiableValueObject<?>> to) 
 - 
loadValueObject@Transactional(readOnly=true) public <T extends Identifiable,U extends IdentifiableValueObject<T>> SearchResult<U> loadValueObject(SearchResult<T> searchResult) throws IllegalArgumentException Description copied from interface:SearchServiceConvert aSearchResultto its VO flavour.The resulting search result preserve the result ID, score and highlighted text, and SearchResult#getResultType(), but sees itsSearchResult#getResultObject()transformed.The conversion logic is mainly defined by the corresponding BaseVoEnabledServicethat match the result type. SeeSearchService.getSupportedResultTypes()for a set of supported result types this o function can handle.- Specified by:
- loadValueObjectin interface- SearchService
- Throws:
- IllegalArgumentException- if the passed search result is not supported for VO conversion
 
 - 
loadValueObjects@Transactional(readOnly=true) public List<SearchResult<? extends IdentifiableValueObject<?>>> loadValueObjects(Collection<SearchResult<?>> searchResults) throws IllegalArgumentException Description copied from interface:SearchServiceConvert a collection ofSearchResultto their VO flavours.Note that since the results might contain a mixture of different result types, the implementation can take advantage of grouping result by types in order to use BaseVoEnabledService.loadValueObjects(Collection), which is generally more efficient than loading each result individually.- Specified by:
- loadValueObjectsin interface- SearchService
- Parameters:
- searchResults- a collection of- SearchResult, which may contain a mixture of different- Identifiableresult objects
- Returns:
- converted search results as per SearchService.loadValueObject(SearchResult)
- Throws:
- IllegalArgumentException- if any of the supplied search results cannot be converted to VO
- See Also:
- BaseVoEnabledService.loadValueObjects(Collection)
 
 
- 
 
-