/// <summary>
        /// Registered predefined filter for all searches
        /// </summary>
        protected void AddPredefinedFilter(IEsSearchFilter <TDoc> filter)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }

            _filters.Add(filter);
        }
        /// <summary>
        /// Registers filter with specified key
        /// </summary>
        protected void RegisterNamedFilter(string key, IEsSearchFilter <TDoc> filter)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }
            if (string.IsNullOrWhiteSpace(key))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(key));
            }

            _registeredFilters.Add(key, filter);
        }