过滤RavenDB搜索结果

过滤RavenDB搜索结果,ravendb,Ravendb,我有一个使用IRavenQueryable.search方法返回有效搜索结果的查询。但是,我想通过.Where方法调用进一步过滤这些结果,这样搜索结果就会被过滤,只包括那些具有匹配ProjectId的结果 我的对象结构是一组项目实体,每个项目实体包含一组问题实体 “我的索引”创建问题搜索结果的投影,如下所示: {Id,Key,Summary,Description,ProjectId,ProjectKey,Query} 查询属性是关键字搜索使用的对象[] 当我运行关键字搜索时: var resu

我有一个使用IRavenQueryable.search方法返回有效搜索结果的查询。但是,我想通过.Where方法调用进一步过滤这些结果,这样搜索结果就会被过滤,只包括那些具有匹配ProjectId的结果

我的对象结构是一组项目实体,每个项目实体包含一组问题实体

“我的索引”创建问题搜索结果的投影,如下所示:

{Id,Key,Summary,Description,ProjectId,ProjectKey,Query}

查询属性是关键字搜索使用的对象[]

当我运行关键字搜索时:

var results=session.Query().AsProjection().Search(x=>x.Query,“一些关键字”)

我得到了正确的结果。但当我尝试应用Where方法时:

results=results.Where(i=>i.ProjectId==SelectedProject.Id)

它不过滤结果,而是包含具有匹配项目Id的所有其他结果


在这种情况下,强制Linq或RavenDB的IRavenQueryable应用AND而不是or的正确方法是什么?

发布此问题后,我在stackoverflow的其他地方找到了答案

以下是解决方案:


简而言之,Search方法提供了一个额外的可选参数[options],允许您指定如何将搜索与查询中的其他where子句组合。它默认为SearchOptions。或者,您需要显式地将其设置为options:SearchOptions.And

发布了这个问题后,我在stackoverflow的其他地方找到了答案

以下是解决方案:

简而言之,Search方法提供了一个额外的可选参数[options],允许您指定如何将搜索与查询中的其他where子句组合。它默认为SearchOptions。或者,您需要显式地将其设置为options:SearchOptions.And