Class SolrSynonymService
java.lang.Object
com.broadleafcommerce.search.provider.solr.AbstractBasicAuthAwareSolrProvider
com.broadleafcommerce.search.provider.solr.service.SolrSynonymService
- All Implemented Interfaces:
com.broadleafcommerce.search.core.service.SynonymService,com.broadleafcommerce.search.provider.solr.SolrProvider,org.springframework.beans.factory.InitializingBean
public class SolrSynonymService
extends com.broadleafcommerce.search.provider.solr.AbstractBasicAuthAwareSolrProvider
implements com.broadleafcommerce.search.core.service.SynonymService, org.springframework.beans.factory.InitializingBean
-
Field Summary
FieldsFields inherited from class com.broadleafcommerce.search.provider.solr.AbstractBasicAuthAwareSolrProvider
CLUSTER_STATUS_PATH -
Constructor Summary
ConstructorsConstructorDescriptionSolrSynonymService(org.apache.solr.client.solrj.SolrClient solrClient, com.broadleafcommerce.search.provider.solr.autoconfigure.BroadleafSolrProperties solrProperties, com.broadleafcommerce.search.provider.solr.SolrCollectionResolver collectionResolver, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.broadleafcommerce.search.core.service.SynonymProperties synonymProperties) -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected Optional<com.broadleafcommerce.search.core.service.domain.Synonym>convertToSingleSynonym(org.apache.solr.common.util.NamedList<Object> request, String word) protected List<com.broadleafcommerce.search.core.service.domain.Synonym>convertToSynonymList(org.apache.solr.common.util.NamedList<Object> response) voiddeleteSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) voiddeleteSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, String alias, com.broadleafcommerce.search.core.service.ManagedLanguage language) protected @NotNull List<com.broadleafcommerce.search.core.service.domain.Synonym>filterSynonyms(List<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, String query) protected Optional<com.broadleafcommerce.search.core.service.domain.Synonym>findSynonymDiff(com.broadleafcommerce.search.core.service.domain.Synonym synonym, String collection, String language) protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.UpdateResponse>getAddSynonymRequest(com.broadleafcommerce.search.core.service.ManagedLanguage language, Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) List<com.broadleafcommerce.search.core.service.ManagedLanguage>getAvailableLanguages(String indexableType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected StringgetBackgroundAlias(com.broadleafcommerce.search.api.type.IndexableType indexableType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected com.broadleafcommerce.search.provider.solr.SolrCollectionResolverprotected StringgetDeletePath(String language, com.broadleafcommerce.search.core.service.domain.Synonym synonym) protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.SimpleSolrResponse>getDeleteSynonymRequest(String language, com.broadleafcommerce.search.core.service.domain.Synonym synonym) Returns a Solr request to delete a synonym.protected com.fasterxml.jackson.databind.ObjectMapperprotected StringgetPrimaryAlias(com.broadleafcommerce.search.api.type.IndexableType indexableType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.SimpleSolrResponse>getReadSingleSynonymRequest(String word, String language) protected StringgetReadSynonymPath(String language, String word) protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.SimpleSolrResponse>getReadSynonymRequest(com.broadleafcommerce.search.core.service.ManagedLanguage language) protected StringgetSynonymPath(String language) protected com.broadleafcommerce.search.core.service.SynonymPropertiesprotected List<com.broadleafcommerce.search.core.service.SynonymProperties.LoadSynonymProperty>voidprotected com.broadleafcommerce.search.core.service.domain.SynonymlowercaseAndSanitizeSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym) Lowercases the supplied synonym ifSynonymProperties.isCaseSensitive()is false.protected Collection<com.broadleafcommerce.search.core.service.domain.Synonym>lowercaseAndSanitizeSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) Lowercases and sanitizes the supplied synonyms.protected StringlowercaseString(String string) readAllLines(String filePath) Reads all lines from a file.Optional<com.broadleafcommerce.search.core.service.domain.Synonym>readSynonym(String word, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Optional<com.broadleafcommerce.search.core.service.domain.Synonym>readSynonym(String word, String alias, String language) List<com.broadleafcommerce.search.core.service.domain.Synonym>readSynonyms(com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, cz.jirutka.rsql.parser.ast.Node filters, String query, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) List<com.broadleafcommerce.search.core.service.domain.Synonym>readSynonyms(String alias, com.broadleafcommerce.search.core.service.ManagedLanguage language) protected List<com.broadleafcommerce.search.core.service.domain.Synonym>readSynonymsFile(com.broadleafcommerce.search.core.service.SynonymProperties.LoadSynonymProperty property) com.broadleafcommerce.search.core.service.ManagedLanguageresolveManagedLanguage(com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected StringsanitizeSynonymString(String string, boolean urlEncode) Sanitize the synonym string by removing any restricted characters.protected StringtoSynonymPayload(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) protected voidtryLoadingSynonyms(com.broadleafcommerce.search.core.service.SynonymProperties.LoadSynonymProperty property, String alias, boolean failOnError, List<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, Set<String> aliasesToReload) com.broadleafcommerce.search.core.service.domain.SynonymupdateSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) List<com.broadleafcommerce.search.core.service.domain.Synonym>updateSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) List<com.broadleafcommerce.search.core.service.domain.Synonym>updateSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, String alias, com.broadleafcommerce.search.core.service.ManagedLanguage language, boolean reloadCollection) protected StringMethods inherited from class com.broadleafcommerce.search.provider.solr.AbstractBasicAuthAwareSolrProvider
determineCollectionsFromAliases, getSolrBasicAuthPassword, getSolrBasicAuthUser, getSolrClient, reloadCollections, reloadCollectionsFromAliases, setBasicAuthCredentialsIfNecessary
-
Field Details
-
EMPTY_MAP
-
SYNONYM_PATH
The Solr translation path. Path argument is the language- See Also:
-
-
Constructor Details
-
SolrSynonymService
public SolrSynonymService(org.apache.solr.client.solrj.SolrClient solrClient, com.broadleafcommerce.search.provider.solr.autoconfigure.BroadleafSolrProperties solrProperties, com.broadleafcommerce.search.provider.solr.SolrCollectionResolver collectionResolver, com.fasterxml.jackson.databind.ObjectMapper objectMapper, @Nullable com.broadleafcommerce.search.core.service.SynonymProperties synonymProperties)
-
-
Method Details
-
readSynonyms
public List<com.broadleafcommerce.search.core.service.domain.Synonym> readSynonyms(com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable String query, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
readSynonymsin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
filterSynonyms
-
readSynonym
public Optional<com.broadleafcommerce.search.core.service.domain.Synonym> readSynonym(String word, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
readSynonymin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
readSynonym
-
readSynonyms
-
updateSynonym
public com.broadleafcommerce.search.core.service.domain.Synonym updateSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
updateSynonymin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
updateSynonyms
public List<com.broadleafcommerce.search.core.service.domain.Synonym> updateSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
updateSynonymsin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
updateSynonyms
public List<com.broadleafcommerce.search.core.service.domain.Synonym> updateSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms, String alias, com.broadleafcommerce.search.core.service.ManagedLanguage language, boolean reloadCollection) -
deleteSynonym
public void deleteSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
deleteSynonymin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
deleteSynonym
public void deleteSynonym(com.broadleafcommerce.search.core.service.domain.Synonym synonym, String alias, com.broadleafcommerce.search.core.service.ManagedLanguage language) -
getAvailableLanguages
public List<com.broadleafcommerce.search.core.service.ManagedLanguage> getAvailableLanguages(String indexableType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
getAvailableLanguagesin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
getPrimaryAlias
protected String getPrimaryAlias(com.broadleafcommerce.search.api.type.IndexableType indexableType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
getBackgroundAlias
protected String getBackgroundAlias(com.broadleafcommerce.search.api.type.IndexableType indexableType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
getSynonymPropertyConfig
protected List<com.broadleafcommerce.search.core.service.SynonymProperties.LoadSynonymProperty> getSynonymPropertyConfig() -
convertToSingleSynonym
-
findSynonymDiff
-
resolveManagedLanguage
public com.broadleafcommerce.search.core.service.ManagedLanguage resolveManagedLanguage(com.broadleafcommerce.search.api.type.IndexableType indexableType, String managedLanguage, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) -
afterPropertiesSet
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
Exception
-
loadSynonyms
public void loadSynonyms()- Specified by:
loadSynonymsin interfacecom.broadleafcommerce.search.core.service.SynonymService
-
tryLoadingSynonyms
-
readSynonymsFile
protected List<com.broadleafcommerce.search.core.service.domain.Synonym> readSynonymsFile(com.broadleafcommerce.search.core.service.SynonymProperties.LoadSynonymProperty property) -
readAllLines
Reads all lines from a file.- Returns:
- the lines in the file
- Throws:
IOException
-
getSynonymPath
-
getDeletePath
-
getReadSynonymPath
-
getReadSingleSynonymRequest
-
getReadSynonymRequest
protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.SimpleSolrResponse> getReadSynonymRequest(com.broadleafcommerce.search.core.service.ManagedLanguage language) -
getDeleteSynonymRequest
protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.SimpleSolrResponse> getDeleteSynonymRequest(String language, com.broadleafcommerce.search.core.service.domain.Synonym synonym) Returns a Solr request to delete a synonym. Note that this callsgetDeletePath(String, Synonym), which also URL encodesSynonym.getWord()- Parameters:
language- The managed language to delete the synonym fromsynonym- The synonym to delete- Returns:
- The Solr request to delete the synonym
-
getAddSynonymRequest
protected org.apache.solr.client.solrj.SolrRequest<org.apache.solr.client.solrj.response.UpdateResponse> getAddSynonymRequest(com.broadleafcommerce.search.core.service.ManagedLanguage language, Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) -
convertToSynonymList
-
lowercaseAndSanitizeSynonyms
protected Collection<com.broadleafcommerce.search.core.service.domain.Synonym> lowercaseAndSanitizeSynonyms(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) Lowercases and sanitizes the supplied synonyms. IfSynonymProperties.isCaseSensitive()is true, only sanitizes the synonyms.- Parameters:
synonyms- the synonyms to lowercase- Returns:
- the synonym with the word and synonyms lowercased if case insensitive
-
lowercaseAndSanitizeSynonym
protected com.broadleafcommerce.search.core.service.domain.Synonym lowercaseAndSanitizeSynonym(@Nullable com.broadleafcommerce.search.core.service.domain.Synonym synonym) Lowercases the supplied synonym ifSynonymProperties.isCaseSensitive()is false. If case sensitive, returns the synonym as-is.- Parameters:
synonym- the synonym to lowercase- Returns:
- the synonym with the word and synonyms lowercased
-
toSynonymPayload
protected String toSynonymPayload(Collection<com.broadleafcommerce.search.core.service.domain.Synonym> synonyms) -
lowercaseString
-
sanitizeSynonymString
Sanitize the synonym string by removing any restricted characters. Optionally URL encode the synonym string.- Parameters:
string- the synonym string to sanitize- Returns:
-
urlEncode
-
getSynonymProperties
protected com.broadleafcommerce.search.core.service.SynonymProperties getSynonymProperties() -
getObjectMapper
protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper() -
getCollectionResolver
protected com.broadleafcommerce.search.provider.solr.SolrCollectionResolver getCollectionResolver()
-