public string GetFileFolder(AccountName accountName, DocumentIndexSetup documentIndexSetup)
        {
            string basePath = string.IsNullOrEmpty(documentIndexSetup.IndexPath) ? string.Format("{0}\\{1}", IndexFileRootPath, "index") : documentIndexSetup.IndexPath;
            var    isOnSite = accountName == AccountName.Empty;

            return(Path.Combine(basePath, isOnSite ? basePath : string.Format("{0}\\{1}", basePath, accountName.Value)));
        }
Beispiel #2
0
        private string GetIndexPath(DocumentIndexSetup documentIndexSetup, AccountName accountName)
        {
            string basePath = string.IsNullOrEmpty(documentIndexSetup.IndexPath) ? string.Format("{0}\\{1}", BasePath, "index") : documentIndexSetup.IndexPath;
            var    isOnSite = accountName == AccountName.Empty;

            return(Path.Combine(basePath, isOnSite ? basePath : string.Format("{0}\\{1}", basePath, accountName.Value)));
        }
Beispiel #3
0
 public DocumentIndexProvider(IActivityLoggerFactory loggerFactory, DocumentIndexSetup documentIndexSetup, DocumentIndexMetadata documentIndexMetadata, DocumentIndexOptimizeHintFactory optimizeHintFactory)
 {
     _loggerFactory         = loggerFactory;
     _documentIndexSetup    = documentIndexSetup;
     _documentIndexMetadata = documentIndexMetadata;
     _optimizeHintFactory   = optimizeHintFactory;
     _documentIndexes       = new DocumentIndexes();
 }
		public DocumentIndexProvider(IActivityLoggerFactory loggerFactory, DocumentIndexSetup documentIndexSetup, DocumentIndexMetadata documentIndexMetadata, DocumentIndexOptimizeHintFactory optimizeHintFactory)
		{
			_loggerFactory = loggerFactory;
			_documentIndexSetup = documentIndexSetup;
			_documentIndexMetadata = documentIndexMetadata;
			_optimizeHintFactory = optimizeHintFactory;
			_documentIndexes = new DocumentIndexes();
		}
Beispiel #5
0
 public DocumentIndex(DocumentIndexTypeToken documentIndexTypeToken, AccountName accountName, Action shuttingDown, DocumentIndexSetup documentIndexSetup, Action <string> log)
 {
     _documentType       = DocumentIndexTypes[documentIndexTypeToken];
     _hoot               = new Hoot(GetIndexPath(documentIndexSetup, accountName), _documentType.FileName, log, documentIndexSetup.MinStringLengthToSearch, documentIndexSetup.MaxStringLengthIgnore);
     _shuttingDown       = shuttingDown;
     _isAlive            = true;
     _gate               = new object();
     _documentIndexSetup = documentIndexSetup;
     UpdateToken();
 }
		public IEnumerable<int> GetVersions(AccountName accountName, DocumentIndexSetup documentIndexSetup)
		{
			string folder = GetFileFolder(accountName, documentIndexSetup);
			string versionedFilenameMask = _documentIndexDataTypeService.CreateVersionedFilenameMask(_fileName);
			return _fileService.GetFiles(folder, versionedFilenameMask)
								.Select(name => _documentIndexDataTypeService.ParseVersion(new FileInfo(name).Name))
								.Choose()
								.Distinct()
								.ToList();
		}
 public DocumentIndexRebuilder(IDocumentIndexProvider documentIndexProvider, DocumentIndexSetup documentIndexSetup, ITpBus bus, IPluginContext pluginContext, IPluginMetadata pluginMetadata, IProfileCollection profileCollection, IProfile profile, IActivityLogger logger)
 {
     _documentIndexProvider = documentIndexProvider;
     _documentIndexSetup    = documentIndexSetup;
     _bus               = bus;
     _pluginContext     = pluginContext;
     _pluginMetadata    = pluginMetadata;
     _profileCollection = profileCollection;
     _profile           = profile;
     _logger            = logger;
 }
 public DocumentIndexRebuilder(IDocumentIndexProvider documentIndexProvider, DocumentIndexSetup documentIndexSetup, ITpBus bus, IPluginContext pluginContext, IPluginMetadata pluginMetadata, IProfileCollection profileCollection, IProfile profile, IActivityLogger logger)
 {
     _documentIndexProvider = documentIndexProvider;
     _documentIndexSetup = documentIndexSetup;
     _bus = bus;
     _pluginContext = pluginContext;
     _pluginMetadata = pluginMetadata;
     _profileCollection = profileCollection;
     _profile = profile;
     _logger = logger;
 }
        public IEnumerable <int> GetVersions(AccountName accountName, DocumentIndexSetup documentIndexSetup)
        {
            string folder = GetFileFolder(accountName, documentIndexSetup);
            string versionedFilenameMask = _documentIndexDataTypeService.CreateVersionedFilenameMask(_fileName);

            return(_fileService.GetFiles(folder, versionedFilenameMask)
                   .Select(name => _documentIndexDataTypeService.ParseVersion(new FileInfo(name).Name))
                   .Choose()
                   .Distinct()
                   .ToList());
        }
		public IDocumentIndexOptimizeHint Create(DocumentIndexSetup setup)
		{
			switch (setup.DeferredOptimizeType)
			{
				case DeferredOptimizeType.None:
				case DeferredOptimizeType.Time:
					return new DocumentIndexOptimizeNoHint();
				case DeferredOptimizeType.Calls:
					return new DocumentIndexOptimizeByCallsHint(setup.DeferredOptimizeCounter);
				default:
					throw EnumServices.CreateUnexpectedEnumError(setup.DeferredOptimizeType);
			}
		}
Beispiel #11
0
        public DocumentIndexTyped(DocumentIndexType indexType, IPluginContext context, Action shuttedDown, DocumentIndexSetup documentIndexSetup, IActivityLoggerFactory loggerFactory, DocumentIndexOptimizeHintFactory optimizeHintFactory)
        {
            _indexType = indexType;
            _logger    = loggerFactory.Create(new PluginContextSnapshot(context));
            var indexPath = _indexType.GetFileFolder(context.AccountName, documentIndexSetup);

            _hoot               = new Hoot(indexPath, _indexType.FileName, _logger.Debug, _logger.Error, indexType.CreateTokensParser(documentIndexSetup), _logger.IsDebugEnabled);
            _shuttedDown        = shuttedDown;
            _isAlive            = true;
            _documentIndexSetup = documentIndexSetup;
            _optimizeHint       = optimizeHintFactory.Create(documentIndexSetup);
            _isOptimized        = true;
            UpdateLastUsedToken();
        }
		public QueryParser(DocumentIndexSetup setup)
		{
			_setup = setup;
			_doubleQuotes = new Regex("\"[^\"]+\"");
			_symbolRemover = new SpecialSymbolRemover();
			_steps = new List<Func<ParserContext, ParserContext>>
				{
					RemoveNewLines,
					MakeToLowerCase,
					TransformDoubleQuotesPhraseToMandatoryWords,
					SplitBySpecialSymbolsThenRemoveThem,
					RemoveEmptyWords,
					RemoveNotIndexedString,
					TransformNonMandatoryWordsIntoCandidatesForContains,
					AddMandatoryWords,
					RemoveDuplicateWords,
				};
		}
		public void RemovePreviousVersions()
		{
			var accountName = AccountName.Empty;
			var documentIndexSetup = new DocumentIndexSetup(string.Empty, 0, 0, 0);
			var activityLoggerFactory = ObjectFactory.GetInstance<IActivityLoggerFactory>();
			var documentIndexOfVersion1 = CreateDocumentIndex(accountName, 1, documentIndexSetup, activityLoggerFactory);
			documentIndexOfVersion1.Shutdown(new DocumentIndexShutdownSetup(forceShutdown: true, cleanStorage: false));
			var documentIndexOfVersion3 = CreateDocumentIndex(accountName, 3, documentIndexSetup, activityLoggerFactory);
			documentIndexOfVersion3.Shutdown(new DocumentIndexShutdownSetup(forceShutdown: true, cleanStorage: false));
			var documentIndexOfVersion2 = CreateDocumentIndex(accountName, 2, documentIndexSetup, activityLoggerFactory);
			IEnumerable<int> versions = documentIndexOfVersion2.Type.GetVersions(accountName, documentIndexSetup).ToList();
			versions.Should(Be.EquivalentTo(new[]{1,2,3}), "versions.Should(Be.EquivalentTo(new[]{1,2,3}))");
			foreach (var version in versions.Except(new[] { documentIndexOfVersion2.Type.Version}))
			{
				DocumentIndexType indexType = documentIndexOfVersion2.Type.CreateVersion(version);
				var documentIndex = CreateDocumentIndex(accountName, indexType, documentIndexSetup, activityLoggerFactory);
				documentIndex.Shutdown(new DocumentIndexShutdownSetup(forceShutdown: true, cleanStorage: true));
			}
			documentIndexOfVersion2.Type.GetVersions(accountName, documentIndexSetup).Should(Be.EquivalentTo(new[] { documentIndexOfVersion2 .Type.Version}), "documentIndexOfVersion2.Type.GetVersions(accountName, documentIndexSetup).Should(Be.EquivalentTo(new[] { documentIndexOfVersion2 .Type.Version}))");
			documentIndexOfVersion2.Shutdown(new DocumentIndexShutdownSetup(forceShutdown: true, cleanStorage: true));
		}
 public string GetFileFolder(AccountName accountName, DocumentIndexSetup documentIndexSetup)
 {
     string basePath = string.IsNullOrEmpty(documentIndexSetup.IndexPath) ? string.Format("{0}\\{1}", IndexFileRootPath, "index") : documentIndexSetup.IndexPath;
     var isOnSite = accountName == AccountName.Empty;
     return Path.Combine(basePath, isOnSite ? basePath : string.Format("{0}\\{1}", basePath, accountName.Value));
 }
 public ITokensParser CreateTokensParser(DocumentIndexSetup indexSetup)
 {
     return _documentIndexDataTypeService.CreateParser(indexSetup);
 }
		private IDocumentIndex CreateDocumentIndex(AccountName accountName, DocumentIndexType documentIndexType, DocumentIndexSetup documentIndexSetup, IActivityLoggerFactory activityLoggerFactory)
		{
			return new DocumentIndexTyped(documentIndexType, new PluginContextMock { AccountName = accountName, ProfileName = "Qq" }, () => { }, documentIndexSetup, activityLoggerFactory, new DocumentIndexOptimizeHintFactory());
		}
		private IDocumentIndex CreateDocumentIndex(AccountName accountName, int version, DocumentIndexSetup documentIndexSetup, IActivityLoggerFactory activityLoggerFactory)
		{
			var indexType = new DocumentIndexType(DocumentIndexTypeToken.Entity, DocumentIndexDataTypeToken.Digits, "Entity", Enumerable.Empty<Enum>(), Enumerable.Empty<Enum>(), version, new DigitsDocumentIndexDataTypeService(), new FileService());
			return CreateDocumentIndex(accountName, indexType, documentIndexSetup, activityLoggerFactory);
		}
 public abstract ITokensParser CreateParser(DocumentIndexSetup indexSetup);
 public override ITokensParser CreateParser(DocumentIndexSetup indexSetup)
 {
     return(new CharacterTokensParser(indexSetup.MinStringLengthToSearch, indexSetup.MaxStringLengthIgnore));
 }
 public ITokensParser CreateTokensParser(DocumentIndexSetup indexSetup)
 {
     return(_documentIndexDataTypeService.CreateParser(indexSetup));
 }
		public DocumentIndexProvider(Action<string> logger, DocumentIndexSetup documentIndexSetup)
		{
			_logger = logger;
			_documentIndexSetup = documentIndexSetup;
			_documentIndexes = new DocumentIndexes();
		}
		public abstract ITokensParser CreateParser(DocumentIndexSetup indexSetup);
 public DocumentIndexProvider(Action <string> logger, DocumentIndexSetup documentIndexSetup)
 {
     _logger             = logger;
     _documentIndexSetup = documentIndexSetup;
     _documentIndexes    = new DocumentIndexes();
 }
Beispiel #24
0
 public DocumentIndex(DocumentIndexType charactersIndexType, DocumentIndexType digitsIndexType, IPluginContext context, Action shuttedDown, DocumentIndexSetup documentIndexSetup, IActivityLoggerFactory loggerFactory, DocumentIndexOptimizeHintFactory optimizeHintFactory)
 {
     _charactersIndex = new DocumentIndexTyped(charactersIndexType, context, shuttedDown, documentIndexSetup, loggerFactory, optimizeHintFactory);
     _numberIndex     = new DocumentIndexTyped(digitsIndexType, context, shuttedDown, documentIndexSetup, loggerFactory, optimizeHintFactory);
 }
 public override ITokensParser CreateParser(DocumentIndexSetup _)
 {
     return(new DigitsTokensParser());
 }
		public override ITokensParser CreateParser(DocumentIndexSetup _)
		{
			return new DigitsTokensParser();
		}
		public override ITokensParser CreateParser(DocumentIndexSetup indexSetup)
		{
			return new CharacterTokensParser(indexSetup.MinStringLengthToSearch, indexSetup.MaxStringLengthIgnore);
		}