Class SearchManagerImpl

  • All Implemented Interfaces:
    io.vertigo.core.node.component.Activeable, io.vertigo.core.node.component.Component, io.vertigo.core.node.component.CoreComponent, io.vertigo.core.node.component.Manager, SearchManager

    public final class SearchManagerImpl
    extends Object
    implements SearchManager, io.vertigo.core.node.component.Activeable
    Implémentation standard du gestionnaire des indexes de recherche.
    Author:
    dchallas, npiedeloup
    • Constructor Detail

      • SearchManagerImpl

        @Inject
        public SearchManagerImpl​(SearchServicesPlugin searchServicesPlugin,
                                 io.vertigo.core.locale.LocaleManager localeManager,
                                 io.vertigo.core.analytics.AnalyticsManager analyticsManager)
        Constructor.
        Parameters:
        searchServicesPlugin - the searchServicesPlugin
        localeManager - the localeManager
        analyticsManager - the analyticsManager
    • Method Detail

      • start

        public void start()
        Specified by:
        start in interface io.vertigo.core.node.component.Activeable
      • stop

        public void stop()
        Specified by:
        stop in interface io.vertigo.core.node.component.Activeable
      • putAll

        public <S extends io.vertigo.datamodel.structure.model.KeyConcept,​I extends io.vertigo.datamodel.structure.model.DtObject> void putAll​(SearchIndexDefinition indexDefinition,
                                                                                                                                                     Collection<SearchIndex<S,​I>> indexCollection)
        Ajout de plusieurs ressources à l'index. Si les éléments étaient déjà dans l'index ils sont remplacés.
        Specified by:
        putAll in interface SearchManager
        Type Parameters:
        S - Type du keyConcept métier indexé
        I - Type de l'objet représentant l'index
        Parameters:
        indexDefinition - Type de l'index
        indexCollection - Liste des objets à pousser dans l'index
      • put

        public <S extends io.vertigo.datamodel.structure.model.KeyConcept,​I extends io.vertigo.datamodel.structure.model.DtObject> void put​(SearchIndexDefinition indexDefinition,
                                                                                                                                                  SearchIndex<S,​I> index)
        Ajout d'une ressource à l'index. Si l'élément était déjà dans l'index il est remplacé.
        Specified by:
        put in interface SearchManager
        Type Parameters:
        S - Type du keyConcept métier indexé
        I - Type de l'objet représentant l'index
        Parameters:
        indexDefinition - Type de l'index
        index - Objet à pousser dans l'index
      • loadList

        public <R extends io.vertigo.datamodel.structure.model.DtObject> FacetedQueryResult<R,​SearchQuery> loadList​(SearchIndexDefinition indexDefinition,
                                                                                                                          SearchQuery searchQuery,
                                                                                                                          io.vertigo.datamodel.structure.model.DtListState listState)
        Récupération du résultat issu d'une requête.
        Specified by:
        loadList in interface SearchManager
        Type Parameters:
        R - Type de l'objet resultant de la recherche
        Parameters:
        indexDefinition - Type de l'index
        searchQuery - critères initiaux
        listState - Etat de la liste (tri et pagination)
        Returns:
        Résultat correspondant à la requête
      • loadList

        public <R extends io.vertigo.datamodel.structure.model.DtObject> FacetedQueryResult<R,​SearchQuery> loadList​(List<SearchIndexDefinition> indexDefinitions,
                                                                                                                          SearchQuery searchQuery,
                                                                                                                          io.vertigo.datamodel.structure.model.DtListState listState)
        Récupération du résultat issu d'une requête.
        Specified by:
        loadList in interface SearchManager
        Type Parameters:
        R - Type de l'objet resultant de la recherche
        searchQuery - critères initiaux
        listState - Etat de la liste (tri et pagination)
        Returns:
        Résultat correspondant à la requête
      • count

        public long count​(SearchIndexDefinition indexDefinition)
        Specified by:
        count in interface SearchManager
        Parameters:
        indexDefinition - Type de l'index
        Returns:
        Nombre de document indexés
      • remove

        public <S extends io.vertigo.datamodel.structure.model.KeyConcept> void remove​(SearchIndexDefinition indexDefinition,
                                                                                       io.vertigo.datamodel.structure.model.UID<S> uri)
        Suppression d'une ressource de l'index.
        Specified by:
        remove in interface SearchManager
        Type Parameters:
        S - Type du keyConcept métier indexé
        Parameters:
        indexDefinition - Type de l'index
        uri - UID de la ressource à supprimer
      • removeAll

        public void removeAll​(SearchIndexDefinition indexDefinition,
                              ListFilter listFilter)
        Suppression des données correspondant à un filtre.
        Specified by:
        removeAll in interface SearchManager
        Parameters:
        indexDefinition - Type de l'index
        listFilter - Filtre des éléments à supprimer
      • findFirstIndexDefinitionByKeyConcept

        public SearchIndexDefinition findFirstIndexDefinitionByKeyConcept​(Class<? extends io.vertigo.datamodel.structure.model.KeyConcept> keyConceptClass)
        Find IndexDefinition for a keyConcept. It must be one and only one IndexDefinition.
        Specified by:
        findFirstIndexDefinitionByKeyConcept in interface SearchManager
        Parameters:
        keyConceptClass - keyConcept class
        Returns:
        SearchIndexDefinition for this keyConcept (not null)
      • findIndexDefinitionByKeyConcept

        @Deprecated
        public SearchIndexDefinition findIndexDefinitionByKeyConcept​(Class<? extends io.vertigo.datamodel.structure.model.KeyConcept> keyConceptClass)
        Deprecated.
        Find IndexDefinition for a keyConcept. It must be one and only one IndexDefinition.
        Specified by:
        findIndexDefinitionByKeyConcept in interface SearchManager
        Parameters:
        keyConceptClass - keyConcept class
        Returns:
        SearchIndexDefinition for this keyConcept (not null)
      • markAsDirty

        public void markAsDirty​(List<io.vertigo.datamodel.structure.model.UID<? extends io.vertigo.datamodel.structure.model.KeyConcept>> keyConceptUris)
        Mark an uid list as dirty. Index of these elements will be reindexed. Reindexation isn't synchrone, strategy is dependant of plugin's parameters.
        Specified by:
        markAsDirty in interface SearchManager
        Parameters:
        keyConceptUris - UID of keyConcept marked as dirty.
      • reindexAll

        public Future<Long> reindexAll​(SearchIndexDefinition searchIndexDefinition)
        Launch a complete reindexation of an index.
        Specified by:
        reindexAll in interface SearchManager
        Parameters:
        searchIndexDefinition - Type de l'index
        Returns:
        Future of number elements indexed
      • onEvent

        public void onEvent​(StoreEvent storeEvent)
        Receive Store event.
        Parameters:
        storeEvent - Store event