我有一个“消息”课程:
public class User { public string Name { get;set; } /*Other properties*/ }
public class Message {
public User From { get;set; }
public ICollection<User> To { get;set; }
public string Title { get;set; }
/* Others */
}
我有一个这样定义的索引:(是的,直接来自“我一直在关注一个教程视频”)
public class Message_ToFromTitle : AbstractIndexCreationTask
{
public override IndexDefinition CreateIndexDefinition()
{
return new IndexDefinition
{
Map = "from m in docs.Messages select new { Query = new[] { m.Title, m.From.Name, m.To.Select(r => r.Name), } }",
Indexes = {{"Query", FieldIndexing.Analyzed}}
};
}
}
在 Management Studio 中,我可以非常成功地查询类似的内容,它会在 'To'、'From' 或 'Title' 中与 Chris 一起Query:Chris
带来一切,这很棒。Messages
我的问题是如何从.NET 查询?我试过了:
session.Advanced.LuceneQuery<Message, Message_ToFromTitle>().Where("Query:Chris");
哪个有效,但我想做的是:
session.Query<Message, Message_ToFromTitle>().Where(m => m == "Chris");
但是,raven(非常正确)不知道如何处理'm',因为大概我需要以某种方式查询Query
。这Advanced
条路线是唯一对我开放的吗?我很高兴更改索引定义,我使用了非泛型AbstractIndexCreationTask
,因为我在m.To.Select(r=>r.Name)
最后做了一些不会在 C# 中编译,但在 Raven 中以我想要的方式解释,但会如果需要,会很乐意更改为通用的!