0

我的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 仍在创建以下自动索引。

RavenDB 创建的临时索引

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

4

2 回答 2

2

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

您还可以使用以下命令“强制”您正在读取的索引:

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

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

于 2013-05-29T13:13:23.190 回答
0

尝试这个

存储索引:

EventsForMainQueries.Execute(DocumentStore);

查询事件:

Session.Query<Event, EventsForMainQueries>()
于 2013-05-29T14:20:55.333 回答