public AbstractFieldNameTranslator GetFieldNameTranslator(ISearchIndex index) { SolrFieldMap fieldMap = index.Configuration.FieldMap as SolrFieldMap; SolrIndexSchema schema = index.Schema as SolrIndexSchema; ISettings instance = index.Locator.GetInstance <ISettings>(); SolrIndexConfiguration configuration = index.Configuration as SolrIndexConfiguration; Assert.IsNotNull(fieldMap, "FieldMap is null."); Assert.IsNotNull(schema, "SolrSchema is null."); Assert.IsNotNull(instance, "Settings is null."); Assert.IsNotNull(configuration, "This constructor requires SolrIndexConfiguration."); TemplateFieldTypeResolverFactory typeResolverFactory = configuration.TemplateFieldTypeResolverFactory; Assert.IsNotNull(typeResolverFactory, "normalizerFactory is null."); TemplateFieldTypeResolver fieldTypeResolver = typeResolverFactory.Create(); Assert.IsNotNull(fieldTypeResolver, "FieldTypeResolver is null."); SolrFieldConfigurationResolver configurationResolver = new SolrFieldConfigurationResolver(fieldMap, schema, fieldTypeResolver); var ctor = typeof(SolrFieldNameTranslator).Assembly .GetType("Sitecore.ContentSearch.SolrProvider.FieldNames.CultureContextGuard") .GetConstructors().First(); ICultureContextGuard cultureContextGuard = ObjectActivator.GetActivator <ICultureContextGuard>(ctor).Invoke(); return(new SynthesisSolrFieldNameTranslator(fieldMap, schema, instance, configurationResolver, new ExtensionStripHelper(fieldMap, schema), typeResolverFactory, cultureContextGuard)); }
public SolrSearchResults(SolrSearchContext context, SolrQueryResults <Dictionary <string, object> > searchResults, SelectMethod selectMethod, IEnumerable <IExecutionContext> executionContexts, IEnumerable <IFieldQueryTranslator> virtualFieldProcessors) { this._context = context; this._solrIndexConfiguration = (SolrIndexConfiguration)this._context.Index.Configuration; this._selectMethod = selectMethod; this._virtualFieldProcessors = virtualFieldProcessors; this._executionContexts = executionContexts; this._numberFound = searchResults.NumFound; this._searchResults = ApplySecurity(searchResults, context.SecurityOptions, ServiceLocator.ServiceProvider.GetService <BaseCorePipelineManager>(), context.Index.Locator.GetInstance <IAccessRight>(), ref this._numberFound); var executionContext = this._executionContexts != null?this._executionContexts.FirstOrDefault(c => c is OverrideExecutionContext <IIndexDocumentPropertyMapper <Dictionary <string, object> > >) as OverrideExecutionContext <IIndexDocumentPropertyMapper <Dictionary <string, object> > > : null; this._mapper = (executionContext != null ? executionContext.OverrideObject : null) ?? this._solrIndexConfiguration.IndexDocumentPropertyMapper; }