public static UmbracoContentIndexer GetUmbracoIndexer( Lucene.Net.Store.Directory luceneDir, Analyzer analyzer = null, IDataService dataService = null) { if (dataService == null) { dataService = new TestDataService(); } if (analyzer == null) { analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); } var indexSet = new IndexSet(); var indexCriteria = indexSet.ToIndexCriteria(dataService, UmbracoContentIndexer.IndexFieldPolicies); var i = new UmbracoContentIndexer(indexCriteria, luceneDir, //custom lucene directory dataService, analyzer, false); //i.IndexSecondsInterval = 1; i.IndexingError += IndexingError; return i; }
/// <summary> /// Ensures that the'_searchEmail' is added to the user fields so that it is indexed - without having to modify the config /// </summary> /// <param name="indexSet"></param> /// <returns></returns> protected override IIndexCriteria GetIndexerData(IndexSet indexSet) { if (CanInitialize()) { var searchableEmail = indexSet.IndexUserFields["_searchEmail"]; if (searchableEmail == null) { indexSet.IndexUserFields.Add(new IndexField { Name = "_searchEmail" }); } return indexSet.ToIndexCriteria(DataService, IndexFieldPolicies); } return base.GetIndexerData(indexSet); }
/// <summary> /// Creates an IIndexCriteria object based on the indexSet passed in and our DataService /// </summary> /// <param name="indexSet"></param> /// <returns></returns> /// <remarks> /// If we cannot initialize we will pass back empty indexer data since we cannot read from the database /// </remarks> protected override IIndexCriteria GetIndexerData(IndexSet indexSet) { return indexSet.ToIndexCriteria(DataService.InvoiceDataService.GetIndexFieldNames(), IndexFieldPolicies); }
/// <summary> /// Creates an IIndexCriteria object based on the indexSet passed in and our DataService /// </summary> /// <param name="indexSet"></param> /// <returns></returns> /// <remarks> /// If we cannot initialize we will pass back empty indexer data since we cannot read from the database /// </remarks> protected override IIndexCriteria GetIndexerData(IndexSet indexSet) { if (CanInitialize()) { return indexSet.ToIndexCriteria(DataService, IndexFieldPolicies); } else { return base.GetIndexerData(indexSet); } }
/// <summary> /// Initializes the provider and ensures that all configuration can be read /// </summary> /// <param name="builderContext"></param> public override void Initialise(IBuilderContext builderContext) { Mandate.ParameterNotNull(builderContext, "builderContext"); var configMain = builderContext.ConfigurationResolver.GetConfigSection(HiveConfigSection.ConfigXmlKey) as HiveConfigSection; if (configMain == null) throw new ConfigurationErrorsException( string.Format("Configuration section '{0}' not found when building packaging provider '{1}'", HiveConfigSection.ConfigXmlKey, ProviderKey)); var config2Rw = RegistryConfigElement ?? configMain.Providers.ReadWriters[ProviderKey] ?? configMain.Providers.Readers[ProviderKey]; if (config2Rw == null) throw new ConfigurationErrorsException( string.Format("No configuration found for persistence provider '{0}'", ProviderKey)); //get the Hive provider config section _localConfig = DeepConfigManager.Default.GetFirstPluginSection<ProviderConfigurationSection>(config2Rw.ConfigSectionKey); if (!ValidateProviderConfigSection<ExamineDemandBuilder>(_localConfig, config2Rw)) { CanBuild = false; return; } var configMgr = DeepConfigManager.Default; //get the internal indexer provider _internalIndexer = configMgr.GetFirstPluginSetting<ExamineSettings, ProviderSettings>("examine/examine.settings", x => x.IndexProviders.SingleOrDefault(indexer => indexer.Name == _localConfig.InternalIndexer)); if (_internalIndexer == null) { LogHelper.Warn<ExamineDemandBuilder>("Could not load UmbracoInternalIndexer, the configuration section could not be read."); CanBuild = false; return; } //get the internal searcher provider _internalSearcher = configMgr.GetFirstPluginSetting<ExamineSettings, ProviderSettings>("examine/examine.settings", x => x.SearchProviders.SingleOrDefault(indexer => indexer.Name == _localConfig.InternalSearcher)); if (_internalSearcher == null) { LogHelper.Warn<ExamineDemandBuilder>("Could not load UmbracoInternalSearcher, the configuration section could not be read."); CanBuild = false; return; } //get the internal index set to use for the searcher/indexer _internalIndexSet = configMgr.GetFirstPluginSetting<IndexSets, IndexSet>("examine/examine.indexes", x => x.SingleOrDefault(set => set.SetName == _localConfig.InternalIndexSet)); if (_internalIndexSet == null) { LogHelper.Warn<ExamineDemandBuilder>("Could not load UmbracoInternalIndexSet, the configuration section could not be read."); CanBuild = false; return; } CanBuild = true; }
/// <summary> /// Creates an IIndexCriteria object based on the indexSet passed in and our DataService /// </summary> /// <param name="indexSet"></param> /// <returns></returns> protected override IIndexCriteria GetIndexerData(IndexSet indexSet) { return indexSet.ToIndexCriteria(DataService); }