Class EcomSearchEngineServiceImpl
- java.lang.Object
-
- co.mastermindcms.modules.services.EcomSearchEngineServiceImpl
-
- All Implemented Interfaces:
EcomSearchEngineService
- Direct Known Subclasses:
EcomRemainsSearchEngineServiceImpl
@Service public class EcomSearchEngineServiceImpl extends java.lang.Object implements EcomSearchEngineService
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description EcomSearchEngineServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaiSearchIsActive()Checks if the AI search algorithm is currently active.private java.util.List<java.lang.String>aiSearchKeywords(java.lang.String query)private java.lang.String[]doProcessSearchTerms(java.lang.String searchTerms)private org.springframework.data.domain.Page<SellerSKU>doSearch(java.util.List<java.lang.String> keywords, java.lang.String queryExpression, java.lang.Integer offset, java.lang.Integer limit, org.springframework.data.domain.Sort sort)java.util.List<AttributeValue>getActiveAttributeValuesFromSellerSKU(java.lang.String sellerSkuId)This method returns database entities as list.java.util.List<CurrencyItem>getAllCurrencies()This method returns database entities as list.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getAreaUsageTypes()This method retrieves a map, which can be processed in a templates.java.util.List<Attribute>getAttributesFromSKU(java.lang.String skuId)This method returns database entities as list.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getAttributeTypes()This method retrieves a map, which can be processed in a templates.java.util.List<AttributeValue>getAttributeValuesByAreaUsageType(java.lang.String sellerSkuId, java.lang.String areaUsageType)This method returns database entities as list.java.util.List<AttributeValue>getAttributeValuesFromSellerSKU(java.lang.String sellerSkuId)This method returns database entities as list.java.util.List<SkuDTO>getAutoSuggestResults(java.lang.String searchTerm, java.lang.String lang, java.lang.String offset, java.lang.String limit)This method does request for the SKUs in order to suggest what fits to search typing requestjava.util.List<Category>getCategoriesBySkuId(java.lang.String skuId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getCategoryImageUrls(java.lang.String categoryId)This method retrieves a map, which can be processed in a templates.java.lang.StringgetCdnFolderName()This method returns CDN folder namejava.util.List<java.util.Map<java.lang.String,java.lang.String>>getCertificateImageUrls(java.lang.String certificateId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getContainerImageUrls(java.lang.String containerId)This method retrieves a map, which can be processed in a templates.java.util.List<Country>getCountries()This method returns database entity.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getCountriesOfOriginByRequestFilter(java.lang.String productId, java.lang.String searchTerm)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getCountriesOfOriginFilter(java.lang.String skuId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getCountriesOfSellersByRequestFilter(java.lang.String productId, java.lang.String searchTerm)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getCountriesOfSellersFilter(java.lang.String skuId)This method retrieves a map, which can be processed in a templates.CountrygetCountryByCode(java.lang.String code)This method returns database entity.CurrencyItemgetCurrencyByCode(java.lang.String code)This method returns database entity.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDeliveryTypes()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String filterType)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicFilters(java.lang.String parentId, java.lang.String filterType)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicOptionByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicOptionFilters(java.lang.String parentId, java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicValueByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getDynamicValueFilters(java.lang.String parentId, java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getGeneticTypeByRequestFilter(java.lang.String productId, java.lang.String searchTerm)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getGeneticTypeFilter(java.lang.String skuId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getGeneticTypes()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getIncoTerms()This method retrieves a map, which can be processed in a templates.java.util.List<SellerSKU>getLoggedSellerSkus()This method returns data as list.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusCountriesOfOriginFilter()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusDynamicFilters(java.lang.String filterType)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusDynamicOptions(java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusDynamicValues(java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusFilter()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getLoggedSellerSkusGeneticTypeFilter()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getOptionsFromAttribute(java.lang.String attributeId)This method retrieves a map, which can be processed in a templates.java.util.Deque<java.util.Map<java.lang.String,java.lang.Object>>getPaginationFilter(java.lang.String requestJson)This method does calculation for a pages based on the request.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getProductImageUrls(java.lang.String productId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getProductsByCategoryAndFirstLetter(java.lang.String categoryId, java.lang.String firstLetter)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getProductsListByRequestFilter(java.lang.String searchTerm)This method retrives a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getProductsListFilter()This method retrives a map, which can be processed in a templates.protected org.springframework.data.mongodb.core.query.CriteriagetPublishedCriteria()java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getSalutations()This method retrieves a map, which can be processed in a templates.protected java.util.HashSet<java.lang.String>getSearchTerms(java.lang.String searchTerm)UnitgetSelectedUnit(java.lang.String unitId)This method returns database entity.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getSellerImageUrls(java.lang.String sellerId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getSellerSkuImageUrls(java.lang.String sellerSkuId)This method retrieves a map, which can be processed in a templates.java.util.List<SellerSKU>getSellerSkus(java.lang.String skuId)This method returns data as list.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getSellerSkuTypes()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getSellerTypes()This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getSkuImageUrls(java.lang.String skuId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getSkusByProductAndFirstLetter(java.lang.String productId, java.lang.String firstLetter)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getSortedProductsByCategory(java.lang.String categoryId)This method retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.String>>getSortedProductSkus(java.lang.String productId)This method sorted and retrieves a map, which can be processed in a templates.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getTradingUnits()This method retrieves a map, which can be processed in a templates.java.util.Map<java.lang.String,java.lang.Object>getTranslatedUnit(java.lang.String unitId)This method returns data as map.java.util.List<java.util.Map<java.lang.String,java.lang.Object>>getUnits()This method retrieves a map, which can be processed in a templates.java.lang.StringgetUploadListingsExcel()This method returns path for upload listings templatebooleanisCommercialInfoAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisListAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisLogicalAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisNumericAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisPermanentSellerSKU(java.lang.String type)This method checks is database entity field had some value.booleanisProductRelatedAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisRangeAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisRemainedSellerSKU(java.lang.String type)This method checks is database entity field had some value.booleanisSimpleAttribute(java.lang.String type)This method checks is database entity field had some value.booleanisSpecialFeaturesAttribute(java.lang.String type)This method checks is database entity field had some value.java.util.List<java.lang.String>parseSearchQuery(java.lang.String query)This method retrives a map, which can be processed in a templates.java.util.LinkedHashSet<Country>searchCountries(java.lang.String requestJson)This method does search requests and returns data as list.java.util.List<SellerSKU>searchResults(java.lang.String requestJson)This method does search requests and returns data as list.org.springframework.data.domain.Page<SellerSKU>searchResultsPaged(java.lang.String requestJson)This method does search requests and returns data as pages.booleanshowButtonsPermanentSKU(java.lang.String type)This method checks is database entity had permanent type.booleanshowButtonsRemainedSKU(java.lang.String type)This method checks is database entity had remained type.booleanshowSellerSkuPrice(java.lang.String sellerSkuId)This method checks is database entity price field not null.private java.lang.StringtransformFiltersToQuery(org.json.JSONObject queryJson)private org.json.JSONObjecttransformQueryWithRegexp(java.util.Map<java.lang.String,java.lang.Object> requestInitQuery, java.util.List<java.lang.String> ignoreRegexWrap)
-
-
-
Field Detail
-
sellerRepository
@Autowired private SellerRepository sellerRepository
-
sellerSkuRepository
@Autowired private SellerSkuRepository sellerSkuRepository
-
unitRepository
@Autowired private UnitRepository unitRepository
-
languageRepository
@Autowired private LanguageRepository languageRepository
-
settingsRepository
@Autowired private WebSiteSettingsRepository settingsRepository
-
salesCatalogService
@Autowired private SalesCatalogService salesCatalogService
-
skuService
@Autowired private SKUService skuService
-
productService
@Autowired private ProductService productService
-
categoryService
@Autowired private CategoryService categoryService
-
userManagementService
@Autowired private UserManagementService userManagementService
-
attributeService
@Autowired private AttributeService attributeService
-
geoLocationService
@Autowired private GeoLocationService geoLocationService
-
certificateRepository
@Autowired private CertificateRepository certificateRepository
-
translationService
@Autowired private TranslationService translationService
-
containerService
@Autowired private ContentContainerService containerService
-
accessManagementService
@Autowired private AccessManagementService accessManagementService
-
mongoTemplate
@Autowired private org.springframework.data.mongodb.core.MongoTemplate mongoTemplate
-
commerceProperties
@Autowired private CommerceProperties commerceProperties
-
commonProperties
@Autowired private CommonProperties commonProperties
-
aiConfiguration
@Autowired private co.mastermindcms.ai.gpt.config.AiConfiguration aiConfiguration
-
chatGPTService
@Autowired private co.mastermindcms.ai.gpt.services.ChatGPTService chatGPTService
-
marketingService
@Autowired private MarketingService marketingService
-
searchContext
private final java.util.Map<java.lang.String,java.lang.Object> searchContext
-
mapper
private static final com.fasterxml.jackson.databind.ObjectMapper mapper
-
-
Method Detail
-
searchResults
public java.util.List<SellerSKU> searchResults(java.lang.String requestJson)
Description copied from interface:EcomSearchEngineServiceThis method does search requests and returns data as list.- Specified by:
searchResultsin interfaceEcomSearchEngineService- Parameters:
requestJson- search json- Returns:
- database entities as list
-
searchResultsPaged
public org.springframework.data.domain.Page<SellerSKU> searchResultsPaged(java.lang.String requestJson)
Description copied from interface:EcomSearchEngineServiceThis method does search requests and returns data as pages.- Specified by:
searchResultsPagedin interfaceEcomSearchEngineService- Parameters:
requestJson- JSON-object of request contains an instructions for search queries- Returns:
- database entities separated to pages
-
getCdnFolderName
public java.lang.String getCdnFolderName()
Description copied from interface:EcomSearchEngineServiceThis method returns CDN folder name- Specified by:
getCdnFolderNamein interfaceEcomSearchEngineService- Returns:
- value as string
-
getUploadListingsExcel
public java.lang.String getUploadListingsExcel()
Description copied from interface:EcomSearchEngineServiceThis method returns path for upload listings template- Specified by:
getUploadListingsExcelin interfaceEcomSearchEngineService- Returns:
- value as string
-
getSortedProductsByCategory
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getSortedProductsByCategory(java.lang.String categoryId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSortedProductsByCategoryin interfaceEcomSearchEngineService- Parameters:
categoryId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getAllCurrencies
public java.util.List<CurrencyItem> getAllCurrencies()
Description copied from interface:EcomSearchEngineServiceThis method returns database entities as list.- Specified by:
getAllCurrenciesin interfaceEcomSearchEngineService- Returns:
- database entities as list
-
getCurrencyByCode
public CurrencyItem getCurrencyByCode(java.lang.String code)
Description copied from interface:EcomSearchEngineServiceThis method returns database entity.- Specified by:
getCurrencyByCodein interfaceEcomSearchEngineService- Parameters:
code- for filter and return database entity- Returns:
- database entity
-
searchCountries
public java.util.LinkedHashSet<Country> searchCountries(java.lang.String requestJson)
Description copied from interface:EcomSearchEngineServiceThis method does search requests and returns data as list.- Specified by:
searchCountriesin interfaceEcomSearchEngineService- Parameters:
requestJson- search request- Returns:
- data transport entities as list
-
getCountries
public java.util.List<Country> getCountries()
Description copied from interface:EcomSearchEngineServiceThis method returns database entity.- Specified by:
getCountriesin interfaceEcomSearchEngineService- Returns:
- database entities as list
-
getCountryByCode
public Country getCountryByCode(java.lang.String code)
Description copied from interface:EcomSearchEngineServiceThis method returns database entity.- Specified by:
getCountryByCodein interfaceEcomSearchEngineService- Parameters:
code- for filter and return database entity- Returns:
- database entity
-
getSelectedUnit
public Unit getSelectedUnit(java.lang.String unitId)
Description copied from interface:EcomSearchEngineServiceThis method returns database entity.- Specified by:
getSelectedUnitin interfaceEcomSearchEngineService- Parameters:
unitId- identification for filter and return database entity- Returns:
- database entity
-
getTranslatedUnit
public java.util.Map<java.lang.String,java.lang.Object> getTranslatedUnit(java.lang.String unitId)
Description copied from interface:EcomSearchEngineServiceThis method returns data as map.- Specified by:
getTranslatedUnitin interfaceEcomSearchEngineService- Parameters:
unitId- identification for filter and return data- Returns:
- data as map
-
getUnits
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getUnits()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getUnitsin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getSellerImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getSellerImageUrls(java.lang.String sellerId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSellerImageUrlsin interfaceEcomSearchEngineService- Parameters:
sellerId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getCategoryImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getCategoryImageUrls(java.lang.String categoryId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCategoryImageUrlsin interfaceEcomSearchEngineService- Parameters:
categoryId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getProductImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getProductImageUrls(java.lang.String productId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getProductImageUrlsin interfaceEcomSearchEngineService- Parameters:
productId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getSellerSkuImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getSellerSkuImageUrls(java.lang.String sellerSkuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSellerSkuImageUrlsin interfaceEcomSearchEngineService- Parameters:
sellerSkuId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getCertificateImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getCertificateImageUrls(java.lang.String certificateId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCertificateImageUrlsin interfaceEcomSearchEngineService- Parameters:
certificateId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getContainerImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getContainerImageUrls(java.lang.String containerId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getContainerImageUrlsin interfaceEcomSearchEngineService- Parameters:
containerId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getSkuImageUrls
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getSkuImageUrls(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSkuImageUrlsin interfaceEcomSearchEngineService- Parameters:
skuId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getGeneticTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getGeneticTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getGeneticTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getSellerTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getSellerTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSellerTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getSellerSkuTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getSellerSkuTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSellerSkuTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getSalutations
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getSalutations()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSalutationsin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getIncoTerms
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getIncoTerms()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getIncoTermsin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getDeliveryTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDeliveryTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDeliveryTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getTradingUnits
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getTradingUnits()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getTradingUnitsin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getAttributeTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getAttributeTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getAttributeTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getAreaUsageTypes
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getAreaUsageTypes()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getAreaUsageTypesin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getOptionsFromAttribute
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getOptionsFromAttribute(java.lang.String attributeId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getOptionsFromAttributein interfaceEcomSearchEngineService- Parameters:
attributeId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getSellerSkus
public java.util.List<SellerSKU> getSellerSkus(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method returns data as list.- Specified by:
getSellerSkusin interfaceEcomSearchEngineService- Parameters:
skuId- identification for database entity which related entities list be returned- Returns:
- database entities as list
-
getLoggedSellerSkus
public java.util.List<SellerSKU> getLoggedSellerSkus()
Description copied from interface:EcomSearchEngineServiceThis method returns data as list.- Specified by:
getLoggedSellerSkusin interfaceEcomSearchEngineService- Returns:
- database entities as list
-
getLoggedSellerSkusFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusFilter()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusFilterin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getLoggedSellerSkusCountriesOfOriginFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusCountriesOfOriginFilter()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusCountriesOfOriginFilterin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getLoggedSellerSkusGeneticTypeFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusGeneticTypeFilter()
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusGeneticTypeFilterin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getLoggedSellerSkusDynamicFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusDynamicFilters(java.lang.String filterType)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusDynamicFiltersin interfaceEcomSearchEngineService- Parameters:
filterType- for a filtering by "type" field of database entity- Returns:
- map-representation of data
-
getLoggedSellerSkusDynamicOptions
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusDynamicOptions(java.lang.String attributeId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusDynamicOptionsin interfaceEcomSearchEngineService- Parameters:
attributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getLoggedSellerSkusDynamicValues
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getLoggedSellerSkusDynamicValues(java.lang.String attributeId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getLoggedSellerSkusDynamicValuesin interfaceEcomSearchEngineService- Parameters:
attributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getAttributesFromSKU
public java.util.List<Attribute> getAttributesFromSKU(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method returns database entities as list.- Specified by:
getAttributesFromSKUin interfaceEcomSearchEngineService- Parameters:
skuId- identification for database entity which related entities list be returned- Returns:
- database entities as list
-
getAttributeValuesFromSellerSKU
public java.util.List<AttributeValue> getAttributeValuesFromSellerSKU(java.lang.String sellerSkuId)
Description copied from interface:EcomSearchEngineServiceThis method returns database entities as list.- Specified by:
getAttributeValuesFromSellerSKUin interfaceEcomSearchEngineService- Parameters:
sellerSkuId- identification for database entity which related entities list be returned- Returns:
- database entities as list
-
getAttributeValuesByAreaUsageType
public java.util.List<AttributeValue> getAttributeValuesByAreaUsageType(java.lang.String sellerSkuId, java.lang.String areaUsageType)
Description copied from interface:EcomSearchEngineServiceThis method returns database entities as list.- Specified by:
getAttributeValuesByAreaUsageTypein interfaceEcomSearchEngineService- Parameters:
sellerSkuId- identification for database entity which related entities list be returnedareaUsageType- type of usage area- Returns:
- database entities as list
-
getActiveAttributeValuesFromSellerSKU
public java.util.List<AttributeValue> getActiveAttributeValuesFromSellerSKU(java.lang.String sellerSkuId)
Description copied from interface:EcomSearchEngineServiceThis method returns database entities as list.- Specified by:
getActiveAttributeValuesFromSellerSKUin interfaceEcomSearchEngineService- Parameters:
sellerSkuId- identification for database entity which related entities list be returned- Returns:
- database entities as list
-
getCountriesOfOriginFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getCountriesOfOriginFilter(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCountriesOfOriginFilterin interfaceEcomSearchEngineService- Parameters:
skuId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getCountriesOfOriginByRequestFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getCountriesOfOriginByRequestFilter(java.lang.String productId, java.lang.String searchTerm)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCountriesOfOriginByRequestFilterin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entity- Returns:
- map-representation of data
-
getCountriesOfSellersFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getCountriesOfSellersFilter(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCountriesOfSellersFilterin interfaceEcomSearchEngineService- Parameters:
skuId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getCountriesOfSellersByRequestFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getCountriesOfSellersByRequestFilter(java.lang.String productId, java.lang.String searchTerm)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCountriesOfSellersByRequestFilterin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entity- Returns:
- map-representation of data
-
getGeneticTypeFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getGeneticTypeFilter(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getGeneticTypeFilterin interfaceEcomSearchEngineService- Parameters:
skuId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getGeneticTypeByRequestFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getGeneticTypeByRequestFilter(java.lang.String productId, java.lang.String searchTerm)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getGeneticTypeByRequestFilterin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entity- Returns:
- map-representation of data
-
getDynamicFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicFilters(java.lang.String parentId, java.lang.String filterType)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicFiltersin interfaceEcomSearchEngineService- Parameters:
parentId- for a filtering by "_id" field of database entityfilterType- for a filtering by "type" field of database entity- Returns:
- map-representation of data
-
getDynamicByRequestFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String filterType)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicByRequestFiltersin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entityfilterType- for a filtering by "type" field of database entity- Returns:
- map-representation of data
-
getDynamicOptionFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicOptionFilters(java.lang.String parentId, java.lang.String attributeId)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicOptionFiltersin interfaceEcomSearchEngineService- Parameters:
parentId- for a filtering by "_id" field of database entityattributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getDynamicOptionByRequestFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicOptionByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String attributeId)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicOptionByRequestFiltersin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entityattributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getDynamicValueFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicValueFilters(java.lang.String parentId, java.lang.String attributeId)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicValueFiltersin interfaceEcomSearchEngineService- Parameters:
parentId- for a filtering by "_id" field of database entityattributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getDynamicValueByRequestFilters
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getDynamicValueByRequestFilters(java.lang.String productId, java.lang.String searchTerm, java.lang.String attributeId)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getDynamicValueByRequestFiltersin interfaceEcomSearchEngineService- Parameters:
productId- for a filtering by "_id" field of database entitysearchTerm- for a filtering by "searchTerm" field of database entityattributeId- for a filtering by "_id" field of database entity- Returns:
- map-representation of data
-
getPaginationFilter
public java.util.Deque<java.util.Map<java.lang.String,java.lang.Object>> getPaginationFilter(java.lang.String requestJson)
Description copied from interface:EcomSearchEngineServiceThis method does calculation for a pages based on the request.- Specified by:
getPaginationFilterin interfaceEcomSearchEngineService- Parameters:
requestJson- JSON-object of request contains an instructions for search queries- Returns:
- map-representation of data
-
getProductsListFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getProductsListFilter()
Description copied from interface:EcomSearchEngineServiceThis method retrives a map, which can be processed in a templates.- Specified by:
getProductsListFilterin interfaceEcomSearchEngineService- Returns:
- map-representation of data
-
getProductsListByRequestFilter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getProductsListByRequestFilter(java.lang.String searchTerm)
Description copied from interface:EcomSearchEngineServiceThis method retrives a map, which can be processed in a templates.- Specified by:
getProductsListByRequestFilterin interfaceEcomSearchEngineService- Parameters:
searchTerm- for a filtering by "searchTerm" field of database entity- Returns:
- map-representation of data
-
showButtonsPermanentSKU
public boolean showButtonsPermanentSKU(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity had permanent type.- Specified by:
showButtonsPermanentSKUin interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
showButtonsRemainedSKU
public boolean showButtonsRemainedSKU(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity had remained type.- Specified by:
showButtonsRemainedSKUin interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
showSellerSkuPrice
public boolean showSellerSkuPrice(java.lang.String sellerSkuId)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity price field not null.- Specified by:
showSellerSkuPricein interfaceEcomSearchEngineService- Parameters:
sellerSkuId- identification for database entity which will be checked- Returns:
- value as boolean
-
isPermanentSellerSKU
public boolean isPermanentSellerSKU(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isPermanentSellerSKUin interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isRemainedSellerSKU
public boolean isRemainedSellerSKU(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isRemainedSellerSKUin interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isListAttribute
public boolean isListAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isListAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isRangeAttribute
public boolean isRangeAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isRangeAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isSimpleAttribute
public boolean isSimpleAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isSimpleAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isLogicalAttribute
public boolean isLogicalAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isLogicalAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isNumericAttribute
public boolean isNumericAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isNumericAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isProductRelatedAttribute
public boolean isProductRelatedAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isProductRelatedAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isCommercialInfoAttribute
public boolean isCommercialInfoAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isCommercialInfoAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
isSpecialFeaturesAttribute
public boolean isSpecialFeaturesAttribute(java.lang.String type)
Description copied from interface:EcomSearchEngineServiceThis method checks is database entity field had some value.- Specified by:
isSpecialFeaturesAttributein interfaceEcomSearchEngineService- Parameters:
type- field for database entity which will be checked- Returns:
- value as boolean
-
parseSearchQuery
public java.util.List<java.lang.String> parseSearchQuery(java.lang.String query)
Description copied from interface:EcomSearchEngineServiceThis method retrives a map, which can be processed in a templates.- Specified by:
parseSearchQueryin interfaceEcomSearchEngineService- Parameters:
query- query for a process search with Ai- Returns:
- list from keywords
-
getSortedProductSkus
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getSortedProductSkus(java.lang.String productId)
Description copied from interface:EcomSearchEngineServiceThis method sorted and retrieves a map, which can be processed in a templates.- Specified by:
getSortedProductSkusin interfaceEcomSearchEngineService- Parameters:
productId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getProductsByCategoryAndFirstLetter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getProductsByCategoryAndFirstLetter(java.lang.String categoryId, java.lang.String firstLetter)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getProductsByCategoryAndFirstLetterin interfaceEcomSearchEngineService- Parameters:
categoryId- identification for database entity which will be retrievedfirstLetter- first letter of the name for the product- Returns:
- map-representation of data
-
getSkusByProductAndFirstLetter
public java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getSkusByProductAndFirstLetter(java.lang.String productId, java.lang.String firstLetter)Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getSkusByProductAndFirstLetterin interfaceEcomSearchEngineService- Parameters:
productId- identification for database entity which will be retrievedfirstLetter- first letter of the name for the sku- Returns:
- map-representation of data
-
getCategoriesBySkuId
public java.util.List<Category> getCategoriesBySkuId(java.lang.String skuId)
Description copied from interface:EcomSearchEngineServiceThis method retrieves a map, which can be processed in a templates.- Specified by:
getCategoriesBySkuIdin interfaceEcomSearchEngineService- Parameters:
skuId- identification for database entity which will be retrieved- Returns:
- map-representation of data
-
getAutoSuggestResults
public java.util.List<SkuDTO> getAutoSuggestResults(java.lang.String searchTerm, java.lang.String lang, java.lang.String offset, java.lang.String limit)
Description copied from interface:EcomSearchEngineServiceThis method does request for the SKUs in order to suggest what fits to search typing request- Specified by:
getAutoSuggestResultsin interfaceEcomSearchEngineService- Parameters:
searchTerm- search querylang- iso code for current languageoffset- offset for returned itemslimit- limit for returned items- Returns:
- map-representation of data
-
aiSearchIsActive
public boolean aiSearchIsActive()
Description copied from interface:EcomSearchEngineServiceChecks if the AI search algorithm is currently active.- Specified by:
aiSearchIsActivein interfaceEcomSearchEngineService- Returns:
- true if the AI search algorithm is active, false otherwise
-
transformFiltersToQuery
private java.lang.String transformFiltersToQuery(org.json.JSONObject queryJson)
-
doSearch
private org.springframework.data.domain.Page<SellerSKU> doSearch(java.util.List<java.lang.String> keywords, java.lang.String queryExpression, java.lang.Integer offset, java.lang.Integer limit, org.springframework.data.domain.Sort sort)
-
doProcessSearchTerms
private java.lang.String[] doProcessSearchTerms(java.lang.String searchTerms)
-
aiSearchKeywords
private java.util.List<java.lang.String> aiSearchKeywords(java.lang.String query)
-
transformQueryWithRegexp
private org.json.JSONObject transformQueryWithRegexp(java.util.Map<java.lang.String,java.lang.Object> requestInitQuery, java.util.List<java.lang.String> ignoreRegexWrap)
-
getPublishedCriteria
protected org.springframework.data.mongodb.core.query.Criteria getPublishedCriteria()
-
getSearchTerms
protected java.util.HashSet<java.lang.String> getSearchTerms(java.lang.String searchTerm)
-
-