Pesquisando por nome de entidade e data da última modificação

Eu tenho um número de comandos armazenados no RavenDb e todos eles implementam o ICommand. Eu quero ser capaz de pesquisar nos metadados da última modificação e Raven-Entity-Name. Atualmente, estou fazendo um mapa múltiplo em cada comando, conforme abaixo:

public class CommandAuditSearch_Index : AbstractMultiMapIndexCreationTask<CommandAuditSearch_Index.Results>
    {
        public class Results
        {
            public string CommandType { get; set; }
            public DateTime LastModified { get; set; }
        }

        public CommandAuditSearch_Index()
        {
            AddMap<NewEmployeeStartCommand>(employees => employees.Select(x => new
            {
                CommandType = MetadataFor(x).Value<string>("Raven-Entity-Name"),
                LastModified = MetadataFor(x).Value<DateTime>("Last-Modified")
            }));

            AddMap<EmployeeLeaverCommand>(employees => employees.Select(x => new
            {
                CommandType = MetadataFor(x).Value<string>("Raven-Entity-Name"),
                LastModified = MetadataFor(x).Value<DateTime>("Last-Modified")
            }));

            Index(results => results.CommandType, FieldIndexing.Analyzed);
        }
    }

Eu pergunto isso da seguinte forma:

session.Query<CommandAuditSearch_Index.Results, CommandAuditSearch_Index>()
                              .Where(x => x.CommandType == commandType && x.LastModified >= DateTime.Today).OfType<ICommand>().ToList();

Eu sei que existe um índice já construído no Raven para obter o Tag (nome da entidade) e data da última modificação, mas eu não consigo descobrir como obter os resultados como o meu índice acima me dá.

Alguém pode me apontar na direção certa de um índice estático onde eu não tenho que ter os multi-mapas como acima para cada comando que eu tenho que consultar que me dá os resultados como uma lista de ICommands?

obrigado

Paddy

questionAnswers(1)

yourAnswerToTheQuestion