具有自定义字段名称的 RavenDB 查询索引
我在 RavenDB 中收集了 Message 文档。 定义:
class Message
{
string Content;
Tag[] Tags;
}
class Tag
{
string Value;
}
我有索引:
from doc in docs.Messages
from docTagsItem in (IEnumerable<dynamic>)doc.Tags
select new { Content = doc.Content, TagsValue = docTagsItem.Value }
这里我们有名为 TagsValue 的字段,它不是 Message 类的一部分,这就是为什么我不能使用
Session.Query<Message>(indexName).Where(m=>m.TagsValue==tagValue)
如何通过 TagValue 从 .NET 查询此索引?我应该使用 Advanced.LuceneQuery 吗?
I have collection of documents Message in RavenDB.
Definition:
class Message
{
string Content;
Tag[] Tags;
}
class Tag
{
string Value;
}
And i have index:
from doc in docs.Messages
from docTagsItem in (IEnumerable<dynamic>)doc.Tags
select new { Content = doc.Content, TagsValue = docTagsItem.Value }
Here we have field with name TagsValue which isn't part of class Message, that's why i can't using
Session.Query<Message>(indexName).Where(m=>m.TagsValue==tagValue)
How should query this index from .NET by TagValue? Should i use Advanced.LuceneQuery?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为您使用 Linq,所以您需要创建一个具有该属性的类型来查询它,或者您可以使用 Lucene API。
请注意,您实际上不需要使用静态索引进行类似的查询,您可以仅使用动态索引和纯 linq 来执行此操作。
Because you use Linq you need to create a type with that property to query that, or you can use Lucene API.
Note that you don't actually need to make a query like that using a static index, you can do that using just dynamic indexes and pure linq.