Class ExactSearchController

java.lang.Object
com.atlassian.confluence.internal.search.v2.ExactSearchController
All Implemented Interfaces:
Supplier<Boolean>

public class ExactSearchController extends Object implements Supplier<Boolean>
This class controls when we should enable Exact Search. By default, Exact Search will be disabled For Lucene: - Exact Search is enable whenever dark feature SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_KEY is enable For Open Search: - Exact Search is enabled for languages that are NOT Chinese or Japanese - For Indexing exact tokens => by default - For Exact Search Query => after full reindex - For Chinese and Japanese and CJK => only enable Exact Search for indexing exact tokens after adding dark feature SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_OVERRIDE_ENABLE_KEY - Can be disables by Dark feature SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_DISABLE_KEY - DF enable => disable Exact Search on both query and indexing - DF disable => enable Exact Search for indexing, Exact Search on query only enable on next reindex To maintain the performance of Extractor, we are using System Property instead of DarkFeature directly. This class will listen when Dark Feature is on/off and application start up to restore Dark Feature property accordingly. It is preferable to add Dark Feature property into start up script for long term solution
Since:
9.1.0
  • Field Details

    • SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_DISABLE_KEY

      public static final String SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_DISABLE_KEY
      See Also:
    • SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_PROPERTY_KEY

      public static final String SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_PROPERTY_KEY
      See Also:
    • SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_OVERRIDE_ENABLE_KEY

      public static final String SEARCH_IMPROVEMENTS_EXACT_DARK_FEATURE_OVERRIDE_ENABLE_KEY
      See Also:
  • Constructor Details

    • ExactSearchController

      public ExactSearchController(com.atlassian.event.api.EventListenerRegistrar eventListenerRegistrar, com.atlassian.sal.api.features.DarkFeatureManager darkFeatureManager, com.atlassian.config.internal.ApplicationConfig applicationConfig, BandanaManager bandanaManager)
  • Method Details

    • registerEventListener

      @PostConstruct public void registerEventListener()
    • unregisterEventListener

      @PreDestroy public void unregisterEventListener()
    • onReindexingFinish

      @EventListener public void onReindexingFinish(ReindexFinishedEvent event)
    • onApplicationStartedEvent

      @EventListener public void onApplicationStartedEvent(ApplicationStartedEvent event)
    • handleClusterEvent

      @EventListener public void handleClusterEvent(ClusterEventWrapper event)
    • onSiteDarkFeatureEnabled

      @EventListener public void onSiteDarkFeatureEnabled(SiteDarkFeatureEnabledEvent event)
    • onSiteDarkFeatureDisabledEvent

      @EventListener public void onSiteDarkFeatureDisabledEvent(SiteDarkFeatureDisabledEvent event)
    • onGlobalSettingsChangedEvent

      @EventListener public void onGlobalSettingsChangedEvent(GlobalSettingsChangedEvent event)
    • isExactSearchQueryEnabled

      public boolean isExactSearchQueryEnabled()
    • isExactSearchIndexingEnabled

      public boolean isExactSearchIndexingEnabled()
    • get

      public Boolean get()
      Specified by:
      get in interface Supplier<Boolean>