RavenDb Как сделать живой прогноз по индексу MultiMap? - PullRequest
1 голос
/ 28 января 2012

У меня есть индекс MultiMap с двумя функциями Map, который индексирует комментарии двух типов документов:

    public class LawDisadvantagesAndLawFixesLastCommentsIndex : AbstractMultiMapIndexCreationTask
    {
        public class IndexResult
        {
            public string Id { get; set; }
            public DateTime DateTime { get; set; }
            public string Author { get; set; }
            public string Text { get; set; }
       }

        public LawDisadvantagesAndFixesLastCommentsIndex()
        {
            AddMap<LawFix>(lawFixes => from lawFix in lawFixes
                                       from comment in lawFix.Comments
                                       select
                                           new
                                               {
                                                   Id = lawFix.Id,
                                                   DateTime = comment.DateTime,
                                                   Author = comment.Author,
                                                   Text = comment.Text
                                               });
            AddMap<LawDisadvantage>(lawDisadvantages => from lawDisadvantage in lawDisadvantages
                                                        from comment in lawDisadvantage.Comments
                                                        select new
                                                                   {
                                                                       Id = lawDisadvantage.Id,
                                                                       DateTime = comment.DateTime,
                                                                       Author = comment.Author,
                                                                       Text = comment.Text
                                                                   });
}

Что мне действительно нужно, так это не весь документ, а только информация комментариев, поэтому я хотел применить прямые прогнозы к этому индексу. Но я понятия не имею, как это сделать в случае индекса MultiMap.

1 Ответ

1 голос
/ 29 января 2012

Просто добавьте что-то вроде этого в свой индекс:

TransformResults = (database, results) => 
    from doc in results                                
    select new
    {                                          
        DateTime = doc.DateTime,
        Author = doc.Author,
        Text = doc.Text
    };

Индексы Multi-Map ничем не отличаются от обычных индексов Map. Они просто позволяют вам легко применять индекс для 2 (или более) документов.

...