如何在AbstractIndexCreationTask中定义字段?

时间:2013-05-29 11:10:45

标签: ravendb

我的申请表中有AbstractIndexCreationTask如下:

public class EventsForMainQueries : AbstractIndexCreationTask<Event>
{
    public EventsForMainQueries()
    {
        Map = docs => from doc in docs
                      select new
                      {
                          DatePublished = doc.DatePublished,
                          IsDeleted     = doc.IsDeleted,
                          Author        = doc.Author,
                          EventDate     = doc.EventDate
                      };

        Index(x => x.DatePublished, FieldIndexing.Default);
        Sort(x => x.DatePublished, SortOptions.String);

        Index(x => x.EventDate, FieldIndexing.Default);
        Sort(x => x.EventDate, SortOptions.String);
    }
}

但是,RavenDB仍在创建以下自动索引。

Temp index created by RavenDB

我需要在IndexCreationTask中更改哪些内容以防止生成临时/自动索引?

2 个答案:

答案 0 :(得分:2)

您是否曾在服务器上调用IndexCreation.CreateIndexes(typeof(EventsForMainQueries).Assembly, documentStore);或以其他任何方式创建该索引?

您还可以使用以下方式“强制”您正在阅读的索引:

session.Query<Event, EventsForMainQueries>()....

如果您的索引不在服务器上,则此查询错误不会创建临时索引。

答案 1 :(得分:0)

试试这个

存储索引:

EventsForMainQueries.Execute(DocumentStore);

查询事件:

Session.Query<Event, EventsForMainQueries>()