public void ClearRepository() { parsers.Clear(); wordSplitter = null; resultsReorderer = null; queryWeightsSupplier = null; queryRewriter = null; indexFilterManager = null; }
public void FindAndRegisterValidExtensionPoints_RemovesInvalidCustomQueryRewriterConfiguration() { CreateExtensionPointsConfiguration(addInvalidQueryRewriterConfiguration: true); ExtensionPointsConfigurationAnalyzer.FindAndRegisterValidExtensionPoints(extensionPointsConfiguration, logger); IQueryRewriter queryRewriter = ExtensionPointsRepository.Instance.GetQueryRewriterImplementation(); Assert.IsNotNull(queryRewriter, "Default query rewriter should be used!"); Assert.AreEqual(queryRewriter.GetType().FullName, "Sando.Indexer.Searching.DefaultQueryRewriter", "Invalid query rewriter returned!"); string logFileContent = File.ReadAllText(logFilePath); Assert.IsTrue(logFileContent.Contains("Invalid query rewriter configuration found - it will be omitted during registration process."), "Log file should contain information about removed invalid query rewriter configuration!"); }
public void FindAndRegisterValidExtensionPoints_RegistersUsableCustomQueryRewriter() { CreateExtensionPointsConfiguration(addValidQueryRewriterConfiguration: true); ExtensionPointsConfigurationAnalyzer.FindAndRegisterValidExtensionPoints(extensionPointsConfiguration, logger); IQueryRewriter queryRewriter = ExtensionPointsRepository.Instance.GetQueryRewriterImplementation(); Assert.IsNotNull(queryRewriter, "Query rewriter should be registered!"); Assert.AreEqual(queryRewriter.GetType().FullName, "Sando.TestExtensionPoints.TestQueryRewriter", "Invalid query rewriter returned!"); string query = null; Assert.DoesNotThrow(() => query = queryRewriter.RewriteQuery("Two Keywords")); Assert.IsFalse(String.IsNullOrWhiteSpace(query), "Invalid results from RewriteQuery method!"); Assert.AreEqual(query, "two keywords", "Query is invalid!"); }
private static void FindAndRegisterValidQueryRewriterExtensionPoints(ExtensionPointsConfiguration extensionPointsConfiguration, ILog logger) { logger.Info("Reading query rewriter extension point configuration started"); BaseExtensionPointConfiguration queryRewriterConfiguration = extensionPointsConfiguration.QueryRewriterConfiguration; if (queryRewriterConfiguration != null) { try { logger.Info(String.Format("Query rewriter found: {0}, from assembly: {1}", queryRewriterConfiguration.FullClassName, queryRewriterConfiguration.LibraryFileRelativePath)); IQueryRewriter queryRewriter = CreateInstance <IQueryRewriter>(extensionPointsConfiguration.PluginDirectoryPath, queryRewriterConfiguration.LibraryFileRelativePath, queryRewriterConfiguration.FullClassName); ExtensionPointsRepository.Instance.RegisterQueryRewriterImplementation(queryRewriter); logger.Info(String.Format("Query rewriter {0} successfully registered.", queryRewriterConfiguration.FullClassName)); } catch (Exception ex) { logger.Error(String.Format("Query rewriter {0} cannot be registered: {1}", queryRewriterConfiguration.FullClassName, ex.Message)); } } logger.Info("Reading query rewriter extension point configuration finished"); }
public void RegisterQueryRewriterImplementation(IQueryRewriter queryRewriter) { Contract.Requires(queryRewriter != null, "ExtensionPointsManager:RegisterQueryRewriterImplementation - queryRewriter cannot be null!"); this.queryRewriter = queryRewriter; }