我正在尝试在 raven db 中进行搜索。 目前,我有以下数据模型。
public class DocumentModel
{
int[] Tag {get;set;}
int From {get;set;}
int[] To {get;set;}
}
我的搜索参数将包含要搜索的标签列表,以及可以位于"发件人"或"收件人"字段中的用户 ID 列表。 我已经能够通过搜索方法搜索用户是否在"发件人"或"收件人"字段中,并将搜索选项设置为 SearchOptions.Or,并且我已经能够对标签执行相同的操作。 但是,我现在需要的是
(Tag1 || Tag2 ) && (From || To)
这可能吗?
谢谢。
编辑:我正在使用Linq方法来执行查询,所以我更喜欢这种形式的答案。
Edit2:我可以有一个用户ID列表和一个标签列表,但我可能有两个之一,两者都有,或者两者都没有。 目前,我从标签的字符串.join('或')开始,将其放在.搜索,并在 上执行交集。搜索电子邮件字段。 有没有更好/更简单的方法?
RavenDB 完全支持括号,并以这种方式排序。我们建议使用 AND/OR 但 &&/||也受支持。
你可以在 Linq 中做到这一点。