gpt4 book ai didi

indexing - 从嵌入式 RavenDB 中的索引检索结果时出现问题

转载 作者:行者123 更新时间:2023-12-03 18:18:59 25 4
gpt4 key购买 nike

我有一个索引,当我使用 .Net 客户端 API 和基于服务器的 RavenDb 查询它时,它工作得很好。

但是,如果我将 RavenDb 更改为嵌入式类型,那么除非我首先查询索引使用的文档,否则我无法直接查询索引。

例如,如果我有以下文档对象,它们作为单独的集合驻留在 RavenDb 中:

private class TestParentDocument
{
public string Id { get { return GetType().Name + "/" + AggregateRootId; } }
public Guid AggregateRootId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}

private class TestChildProductFlagDocument
{
public string TestParentDocumentId { get; set; }
public short ProductFlagTypeId { get; set; }
}

然后我有以下对象代表索引映射到的输出文档:

private class TestJoinIndexOutput
{
public string TestParentDocumentId { get; set; }
public string Name { get; set; }
public short ProductFlagTypeId { get; set; }
}

这是索引定义:

private class TestJoinIndex : AbstractIndexCreationTask<TestChildProductFlagDocument, TestJoinIndexOutput>
{
public TestJoinIndex()
{
Map = docs => from doc in docs
select new
{
TestParentDocumentId = doc.TestParentDocumentId,
ProductFlagTypeId = doc.ProductFlagTypeId
};

TransformResults = (database, results) =>
from result in results
let parentDoc = database.Load<TestParentDocument>(result.TestParentDocumentId)
select new
{
TestParentDocumentId = result.TestParentDocumentId,
ProductFlagTypeId = result.ProductFlagTypeId,
Name = parentDoc.Name
};
}

我调用索引的代码如下所示:

var theJoinIndexes = ravenSession.Query<TestJoinIndexOutput, TestJoinIndex>().ToList();

这几乎立即返回并失败,除非我执行以下操作:

var theParentDocuments = ravenSession.Query<TestParentDocument>().ToList();
var theJoinIndexes = ravenSession.Query<TestJoinIndexOutput, TestJoinIndex>().ToList();

我的 Ravendb 嵌入式定义如下所示:

docStore = new EmbeddableDocumentStore
{
UseEmbeddedHttpServer = false,
RunInMemory = true

};
docStore.Configuration.Port = 7777;
docStore.Initialize();

IndexCreation.CreateIndexes(typeof(TestJoinIndex).Assembly, docstore);

最佳答案

您不是在等待索引完成,请调用 WaitForNonStaleResultsAsOfNow

关于indexing - 从嵌入式 RavenDB 中的索引检索结果时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com