public void ApplyFilter(FilterContext context)
        {
            string query = context.State.SearchQuery;

            if (string.IsNullOrEmpty(query))
            {
                return;
            }

            var    settings = _siteService.GetSiteSettings().As <SearchSettingsPart>();
            string index    = context.State.Index;

            var hitCountLimit = 0;

            int.TryParse(context.State.HitCountLimit.ToString(), out hitCountLimit);

            var hits = _searchService.Query(query, 0, hitCountLimit != 0 ? new Nullable <int>(hitCountLimit) : null,
                                            settings.FilterCulture, index, SearchSettingsHelper.GetSearchFields(settings),
                                            hit => hit);

            if (hits.Any())
            {
                context.Query.WhereIdIn(hits.Select(hit => hit.ContentItemId));
            }
            else
            {
                context.Query.WhereIdIn(new[] { 0 });
            }
        }
Esempio n. 2
0
 public FactoryIndexerFile(
     IOptionsMonitor <ILog> options,
     TenantManager tenantManager,
     SearchSettingsHelper searchSettingsHelper,
     FactoryIndexer factoryIndexer,
     BaseIndexer <DbFile> baseIndexer,
     IServiceProvider serviceProvider,
     IDaoFactory daoFactory)
     : base(options, tenantManager, searchSettingsHelper, factoryIndexer, baseIndexer, serviceProvider)
 {
     DaoFactory = daoFactory;
 }
 public FactoryIndexerEvents(
     IOptionsMonitor <ILog> options,
     TenantManager tenantManager,
     SearchSettingsHelper searchSettingsHelper,
     FactoryIndexer factoryIndexer,
     BaseIndexer <DbRelationshipEvent> baseIndexer,
     IServiceProvider serviceProvider,
     DaoFactory daoFactory,
     ICache cache)
     : base(options, tenantManager, searchSettingsHelper, factoryIndexer, baseIndexer, serviceProvider, cache)
 {
     DaoFactory = daoFactory;
 }
Esempio n. 4
0
 public FactoryIndexerFile(
     IOptionsMonitor <ILog> options,
     TenantManager tenantManager,
     SearchSettingsHelper searchSettingsHelper,
     FactoryIndexer factoryIndexer,
     BaseIndexer <DbFile> baseIndexer,
     IServiceProvider serviceProvider,
     IDaoFactory daoFactory,
     ICache cache,
     ConfigurationExtension configurationExtension)
     : base(options, tenantManager, searchSettingsHelper, factoryIndexer, baseIndexer, serviceProvider, cache)
 {
     DaoFactory = daoFactory;
     Settings   = Settings.GetInstance(configurationExtension);
 }
Esempio n. 5
0
 public BaseIndexer(
     Client client,
     IOptionsMonitor <ILog> log,
     DbContextManager <WebstudioDbContext> dbContextManager,
     TenantManager tenantManager,
     SearchSettingsHelper searchSettingsHelper,
     BaseIndexerHelper baseIndexerHelper,
     IServiceProvider serviceProvider)
 {
     Client               = client;
     Log                  = log.CurrentValue;
     TenantManager        = tenantManager;
     SearchSettingsHelper = searchSettingsHelper;
     BaseIndexerHelper    = baseIndexerHelper;
     ServiceProvider      = serviceProvider;
     WebstudioDbContext   = dbContextManager.Value;
 }
 public FactoryIndexer(
     IOptionsMonitor <ILog> options,
     FactoryIndexerHelper factoryIndexerSupport,
     TenantManager tenantManager,
     SearchSettingsHelper searchSettingsHelper,
     FactoryIndexer factoryIndexer,
     BaseIndexer <T> baseIndexer,
     Client client,
     IServiceProvider serviceProvider)
 {
     Logger = options.Get("ASC.Indexer");
     FactoryIndexerHelper = factoryIndexerSupport;
     TenantManager        = tenantManager;
     SearchSettingsHelper = searchSettingsHelper;
     FactoryIndexerCommon = factoryIndexer;
     Indexer         = baseIndexer;
     Client          = client;
     ServiceProvider = serviceProvider;
 }
Esempio n. 7
0
 public Expression <Func <ISearchItem, object[]> > GetSearchContentFields(SearchSettingsHelper searchSettings)
 {
     return((a) => new[] { Title, Description });
 }
 public bool CanSearchByContent()
 {
     return(SearchSettingsHelper.CanSearchByContent <T>(TenantManager.GetCurrentTenant().TenantId));
 }