private static ISearchIndex CustomSolrIndex(string name) { return(_indexes.GetOrAdd(name, (x) => { var searchIndex = ContentSearchManager.GetIndex(name) as SolrSearchIndex; var customSolrIndex = new SSSolrSearchIndex(searchIndex.Name, searchIndex.Core, searchIndex.PropertyStore) { Configuration = searchIndex.Configuration }; customSolrIndex.Initialize(); return customSolrIndex; })); }
public SSSolrSearchContext(SSSolrSearchIndex index, SearchSecurityOptions options = SearchSecurityOptions.Default) { Assert.ArgumentNotNull(index, nameof(index)); Assert.ArgumentNotNull(options, nameof(options)); if (options == SearchSecurityOptions.Default) { options = index.Configuration.DefaultSearchSecurityOption; } this.index = index; contentSearchSettings = index.Locator.GetInstance <IContentSearchConfigurationSettings>(); settings = index.Locator.GetInstance <ISettings>(); securityOptions = options; var solrUrl = $"{SolrContentSearchManager.SolrSettings.ServiceAddress().TrimEnd('/')}/"; _api = new SearchContext(new System.Net.Http.HttpClient { BaseAddress = new Uri(solrUrl) }, index.Core, new SitecoreNodeTranslator(new FieldTranslator(index.FieldNameTranslator)), new ResposeTranslator(index.FieldNameTranslator)); }