public static UmbracoContentIndex GetUmbracoIndexer(
            IProfilingLogger profilingLogger,
            Directory luceneDir,
            Analyzer analyzer = null,
            ILocalizationService languageService = null,
            IContentValueSetValidator validator  = null)
        {
            if (languageService == null)
            {
                languageService = GetMockLocalizationService();
            }

            if (analyzer == null)
            {
                analyzer = new StandardAnalyzer(Version.LUCENE_30);
            }

            if (validator == null)
            {
                validator = new ContentValueSetValidator(true);
            }

            var i = new UmbracoContentIndex(
                "testIndexer",
                luceneDir,
                new UmbracoFieldDefinitionCollection(),
                analyzer,
                profilingLogger,
                languageService,
                validator);

            i.IndexingError += IndexingError;

            return(i);
        }
Esempio n. 2
0
        public UmbracoContentIndex GetUmbracoIndexer(
            IHostingEnvironment hostingEnvironment,
            IRuntimeState runtimeState,
            Directory luceneDir,
            Analyzer analyzer = null,
            ILocalizationService languageService = null,
            IContentValueSetValidator validator  = null)
        {
            if (languageService == null)
            {
                languageService = GetMockLocalizationService();
            }

            if (analyzer == null)
            {
                analyzer = new StandardAnalyzer(LuceneInfo.CurrentVersion);
            }

            if (validator == null)
            {
                validator = new ContentValueSetValidator(true);
            }

            var options = GetOptions(
                "testIndexer",
                new LuceneDirectoryIndexOptions
            {
                Analyzer         = analyzer,
                Validator        = validator,
                DirectoryFactory = new GenericDirectoryFactory(s => luceneDir),
                FieldDefinitions = new UmbracoFieldDefinitionCollection()
            });

            var i = new UmbracoContentIndex(
                _loggerFactory,
                "testIndexer",
                options,
                hostingEnvironment,
                runtimeState,
                languageService);

            i.IndexingError          += IndexingError;
            i.IndexOperationComplete += I_IndexOperationComplete;

            return(i);
        }
        /// <summary>
        /// Create an index at runtime
        /// </summary>
        /// <param name="name"></param>
        /// <param name="fieldDefinitions"></param>
        /// <param name="luceneDirectory"></param>
        /// <param name="defaultAnalyzer"></param>
        /// <param name="profilingLogger"></param>
        /// <param name="languageService"></param>
        /// <param name="validator"></param>
        /// <param name="indexValueTypes"></param>
        public UmbracoContentIndex(
            string name,
            Directory luceneDirectory,
            FieldDefinitionCollection fieldDefinitions,
            Analyzer defaultAnalyzer,
            IProfilingLogger profilingLogger,
            ILocalizationService languageService,
            IContentValueSetValidator validator,
            IReadOnlyDictionary <string, IFieldValueTypeFactory> indexValueTypes = null)
            : base(name, luceneDirectory, fieldDefinitions, defaultAnalyzer, profilingLogger, validator, indexValueTypes)
        {
            if (validator == null)
            {
                throw new ArgumentNullException(nameof(validator));
            }
            LanguageService = languageService ?? throw new ArgumentNullException(nameof(languageService));

            if (validator is IContentValueSetValidator contentValueSetValidator)
            {
                PublishedValuesOnly = contentValueSetValidator.PublishedValuesOnly;
            }
        }