public SearchBuilder <TSource> WithComponentType(Func <TSource, string> lambda)
        {
            var element = new ComponentTypeAndFieldUnbuiltSearchSpecElement <TSource>();

            element.SetComponentTypeGetter(lambda);
            _unbuiltElements.Add(element);
            return(this);
        }
        public SearchBuilder <TSource> WithComponentTypeAndFields(Func <TSource, string> componentTypeLambda, Func <TSource, IDictionary <string, object> > fieldLambda)
        {
            var element = new ComponentTypeAndFieldUnbuiltSearchSpecElement <TSource>();

            element.SetComponentTypeGetter(componentTypeLambda);
            element.SetFieldGetter(fieldLambda);
            _unbuiltElements.Add(element);
            return(this);
        }