2
我有一個指標:索引不能與Raven DB一起工作,如何調試?
public class FreeSearchIndex :
AbstractIndexCreationTask<Post, FreeSearchIndex.Result>
{
public FreeSearchIndex()
{
Map = posts => from post in posts
select new
{
Query = post.Tags.Concat(new[]
{
post.Title,
post.Body
}),
DatePosted = post.Date
};
Index(x => x.Query, FieldIndexing.Analyzed);
}
public class Result
{
public object[] Query { get; set; }
public DateTime DatePosted { get; set; }
}
}
,並有方法:
public List<Post> Filter(string freeSearch)
{
IQueryable<Post> posts;
var posts = documentSession
.Query<FreeSearchIndex.Result, FreeSearchIndex>()
.Where(x => x.Query == (object)freeSearch)
.OrderByDescending(x => x.DatePosted)
.As<Post>();
return posts.ToList();
}
,並有單元測試:
[SetUp]
public void Setup()
{
store = new EmbeddableDocumentStore
{
RunInMemory = true
};
store.Initialize();
session = store.OpenSession();
IndexCreation.CreateIndexes(typeof(FreeSearchIndex).Assembly, store);
}
[Test]
public void GivenFreeSearchPhrase_Filter_ShouldOutputFilteredPostsByGivenPhrase()
{
session.Store(new Post { Body = "universal answer to everything is 42" });
session.SaveChanges();
var posts = Filter("everything");
Assert.AreEqual(1, posts.Count);
}
而失敗,因爲查詢返回0帖子。我如何解決這個問題?我應該檢查生成的查詢,是否有可能檢查它是如何索引商店(這是在內存中)字段?
嗯,但我不想WaitForStale在生產中,有沒有什麼辦法告訴會話,其中的所有查詢應該等待陳舊,我可以設置,只爲單元測試會議?我可以檢查調試器是否陳舊嗎? – Giedrius
@oleksii - 偉大的,聽衆幫助,所以如果你願意,將你的評論轉換成答案。 – Giedrius