protected override ISearchProvider GetSearchProvider() { var azureSearchOptions = GetAzureSearchOptions(); var options = GetSearchOptions(); var provider = new AzureSearchProvider(azureSearchOptions, options, GetSettingsManager()); return(provider); }
public void Can_create_azuresearch_index() { var scope = "test"; var queryBuilder = new AzureSearchQueryBuilder(); var conn = new SearchConnection(Datasource, scope, accessKey: AccessKey); var provider = new AzureSearchProvider(queryBuilder, conn); SearchHelper.CreateSampleIndex(provider, scope); provider.RemoveAll(scope, String.Empty); }
protected ISearchProvider GetSearchProvider(string searchProvider, string scope, string dataSource = null) { ISearchProvider provider = null; var phraseSearchCriteriaPreprocessor = new PhraseSearchCriteriaPreprocessor(new SearchPhraseParser()) as ISearchCriteriaPreprocessor; var catalogSearchCriteriaPreprocessor = new CatalogSearchCriteriaPreprocessor(); var searchCriteriaPreprocessors = new[] { phraseSearchCriteriaPreprocessor, catalogSearchCriteriaPreprocessor }; if (searchProvider == "Lucene") { var connection = new SearchConnection(_luceneStorageDir, scope); var queryBuilder = new LuceneSearchQueryBuilder() as ISearchQueryBuilder; provider = new LuceneSearchProvider(new[] { queryBuilder }, connection, searchCriteriaPreprocessors); } if (searchProvider == "Elastic") { var elasticsearchHost = dataSource ?? Environment.GetEnvironmentVariable("TestElasticsearchHost") ?? "localhost:9200"; var connection = new SearchConnection(elasticsearchHost, scope); var queryBuilder = new ElasticSearchQueryBuilder() as ISearchQueryBuilder; var elasticSearchProvider = new ElasticSearchProvider(connection, searchCriteriaPreprocessors, new[] { queryBuilder }, GetSettingsManager()) { EnableTrace = true }; provider = elasticSearchProvider; } if (searchProvider == "Azure") { var azureSearchServiceName = Environment.GetEnvironmentVariable("TestAzureSearchServiceName"); var azureSearchAccessKey = Environment.GetEnvironmentVariable("TestAzureSearchAccessKey"); var connection = new SearchConnection(azureSearchServiceName, scope, accessKey: azureSearchAccessKey); var queryBuilder = new AzureSearchQueryBuilder() as ISearchQueryBuilder; provider = new AzureSearchProvider(connection, searchCriteriaPreprocessors, new[] { queryBuilder }); } if (provider == null) { throw new ArgumentException($"Search provider '{searchProvider}' is not supported", nameof(searchProvider)); } return(provider); }
public void Can_find_item_azuresearch() { var scope = "test"; var queryBuilder = new AzureSearchQueryBuilder(); var conn = new SearchConnection(Datasource, scope, accessKey: AccessKey); var provider = new AzureSearchProvider(queryBuilder, conn); provider.RemoveAll(scope, String.Empty); SearchHelper.CreateSampleIndex(provider, scope); var criteria = new CatalogItemSearchCriteria { SearchPhrase = "product", IsFuzzySearch = true, Catalog = "goods", RecordsToRetrieve = 10, StartingRecord = 0, Pricelists = new string[] { } }; // force delay, otherwise records are not available Thread.Sleep(1000); var results = provider.Search(scope, criteria); Assert.True(results.DocCount == 1, String.Format("Returns {0} instead of 1", results.DocCount)); criteria = new CatalogItemSearchCriteria { SearchPhrase = "sample product ", IsFuzzySearch = true, Catalog = "goods", RecordsToRetrieve = 10, StartingRecord = 0, Pricelists = new string[] { } }; results = provider.Search(scope, criteria); Assert.True(results.DocCount == 1, String.Format("\"Sample Product\" search returns {0} instead of 1", results.DocCount)); provider.RemoveAll(scope, String.Empty); }
public void Can_find_items_azuresearch() { var scope = "default"; var queryBuilder = new AzureSearchQueryBuilder(); var conn = new SearchConnection(Datasource, scope, accessKey: AccessKey); var provider = new AzureSearchProvider(queryBuilder, conn); var criteria = new CatalogItemSearchCriteria { SearchPhrase = "sony", IsFuzzySearch = true, Catalog = "vendorvirtual", RecordsToRetrieve = 10, StartingRecord = 0, Pricelists = new string[] { }, StartDate = DateTime.UtcNow, Sort = new SearchSort("price_usd_saleusd") }; criteria.Outlines.Add("vendorvirtual*"); //"(startdate lt 2014-09-26T22:05:11Z) and sys__hidden eq 'false' and sys__outline/any(t:t eq 'VendorVirtual/e1b56012-d877-4bdd-92d8-3fc186899d0f*') and catalog/any(t: t eq 'VendorVirtual')" var results = provider.Search(scope, criteria); }