我应该如何过滤RavenDB Lucene搜索的结果?
假设我有一个我应该如何过滤RavenDB Lucene搜索的结果?,ravendb,Ravendb,假设我有一个User类,如下所示: public class User { public bool IsActive {get;set;} public string[] Tags{get;set;} public string Description {get;set;} } var results = (from u in Session.Query<User>("YourUserIndex") where u.IsActive &
User
类,如下所示:
public class User
{
public bool IsActive {get;set;}
public string[] Tags{get;set;}
public string Description {get;set;}
}
var results = (from u in Session.Query<User>("YourUserIndex")
where u.IsActive && u.Tags.Any(x=>x == "hello") && x.Tags.Any(x=>x=="world")
select u)
.Search(x=>x.Description, "abject failure")
.ToList();
from u in docs.Users
select new { u.IsActive, u.Tags, u.Description };
我想使用RavenDB搜索符合以下条件的用户集:
=trueIsActive
同时包含“hello”和“world”标记
有以下短语“彻底失败”Description
搜索
来查找描述和标记,然后使用IsActive字段的Where
子句对其进行过滤,可能是这样的。但是我迷路了
我使用的是最新的官方版本(960),因此在此之后的所有groovy内容都还没有提供给我。例如,is verboten as 960似乎不支持.as()
扩展
问题
如何构造所需的索引和查询以执行结合以下内容的搜索:
- 单个约束,例如
IsActive
- 集合约束,例如
标记
- 自由文本约束,例如
Description
用户
对象的强类型列表
感谢您提供的所有代码示例或指针。您可以这样查询:
public class User
{
public bool IsActive {get;set;}
public string[] Tags{get;set;}
public string Description {get;set;}
}
var results = (from u in Session.Query<User>("YourUserIndex")
where u.IsActive && u.Tags.Any(x=>x == "hello") && x.Tags.Any(x=>x=="world")
select u)
.Search(x=>x.Description, "abject failure")
.ToList();
from u in docs.Users
select new { u.IsActive, u.Tags, u.Description };
您需要将描述字段标记为已分析