假设我有这样的User
课:
public class User
{
public bool IsActive {get;set;}
public string[] Tags{get;set;}
public string Description {get;set;}
}
我想使用 RavenDB 搜索符合以下条件的用户集:
IsActive
=真Tags
包含“你好”和“世界”Description
有以下短语“失败”
我研究了 Lucene 查询语法,我什至有一些东西可以工作,但是用大量组合字符串构建来创建基于文本的 lucene 查询字符串,这一切都让人感觉非常笨拙。我犹豫把我的代码放在这里,因为它很臭。
我想我想做的是Search
为 Description 和 Tags 提交一个 Lucene,然后使用Where
IsActive 字段的子句对其进行过滤,可能就像这样Filter RavenDB Search Results。但我迷路了。
我正在使用最新的官方版本 (960),因此我还不能使用在此之后出现的所有时髦的东西。例如,此解决方案已被禁止,因为 960 似乎不支持.As<T>()
扩展。
问题
如何构建所需的索引和查询来执行结合以下的搜索:
- 单个约束,例如
IsActive
- 集合约束,例如
Tags
- 自由文本约束,例如
Description
返回一个强类型的User
对象列表?
感谢您提供任何代码示例或指针。