0

RavenDBEmbeddedを使用しています。ビルド888。写真コレクションを用意します。

public class Photo
    {
        private Dictionary<string, VoteDictionaryValue> _votes = new Dictionary<string, VoteDictionaryValue>();

        public Photo()
        {
            Created = DateTime.Now;
        }

        public string Id { get; set; }
        public string Title { get; set; }
        public string UserId { get; set; }
        public string Image { get; set; }
        public DateTime Created { get; private set; }

        public Dictionary<string, VoteDictionaryValue> Votes
        {
            get { return _votes; }
            protected set { _votes = value; }
        }
}

インデックスを持っている:

public class PhotosSortByCreated : AbstractIndexCreationTask<Photo>
    {
        public PhotosSortByCreated()
        {
            Map = photos => from photo in photos
                            select new {photo.Created};

            Store(x => x.Created, FieldStorage.No);
            Sort(x => x.Created, SortOptions.String);
        }
    }

とクエリ:

RavenQueryStatistics stat;

var query = from photo in RavenSession.Query<Photo>()
                        orderby photo.Created descending
                        select photo;

var result = query.Statistics(out stat).Skip(page*pageSize).Take(pageSize).Customize(x => x.WaitForNonStaleResults(TimeSpan.FromSeconds(3))));

写真を1枚ずつ10枚追加します。

このクエリでは、最初の5〜6個しか取得できません。

新しく追加されたすべての写真は返されません。

プールを再起動した後、ravenDBがインデックス作成を停止する前に、5〜6枚の新しい写真を追加できます。

追加されたすべての写真はDBに保存されますが、インデックスは作成されません。

なぜ?

前もって感謝します。

4

1 に答える 1

1

追加:

RavenSession.Query<Photo>().Customize(x=>x.WaitForNonStaleResultsAsOfNow())

何が起こるのですか?

于 2012-05-26T13:44:06.890 に答える