Example #1
0
        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;
            }));
        }
Example #2
0
        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));
        }