为什么RavenDB执行OR操作而不是AND操作?

为什么RavenDB执行OR操作而不是AND操作?,ravendb,Ravendb,为什么在搜索和WHERE之间有OR而不是AND 问题是当前Lucene查询是: “组织类型:Boo(名称:(Foo)简称:(Foo))” 而不是: “组织类型:Boo和(名称:(Foo)简称:(Foo))” 我怎样才能改变这一点 RavenQueryStatistics stats; var organizationQuery = session.Query<Organization>() .Statistics(out

为什么在搜索和WHERE之间有OR而不是AND

问题是当前Lucene查询是:

“组织类型:Boo(名称:(Foo)简称:(Foo))”

而不是:

“组织类型:Boo(名称:(Foo)简称:(Foo))”

我怎样才能改变这一点

RavenQueryStatistics stats;
var organizationQuery = session.Query<Organization>()
                               .Statistics(out stats)
                               .Skip((request.Page - 1) * request.PageSize)
                               .Take(request.PageSize);

if (request.OrganizationType != default(OrganizationType))
{
    organizationQuery = organizationQuery.Where(o => o.OrganizationType == request.OrganizationType);
}

if (!string.IsNullOrEmpty(request.Query))
{
    organizationQuery = organizationQuery
                                         .Search(c => c.Name, request.Query, escapeQueryOptions: EscapeQueryOptions.AllowPostfixWildcard)
                                         .Search(c => c.ShortName, request.Query, escapeQueryOptions: EscapeQueryOptions.AllowPostfixWildcard);
}
RavenQueryStatistics;
var organizationQuery=session.Query()
.统计数据(统计数据)
.Skip((request.Page-1)*request.PageSize)
.Take(请求.页面大小);
if(request.OrganizationType!=默认值(OrganizationType))
{
organizationQuery=organizationQuery.Where(o=>o.OrganizationType==request.OrganizationType);
}
如果(!string.IsNullOrEmpty(request.Query))
{
organizationQuery=organizationQuery
.Search(c=>c.Name、request.Query、escapeQueryOptions:escapeQueryOptions.AllowPostfixWildcard)
.Search(c=>c.ShortName、request.Query、escapeQueryOptions:escapeQueryOptions.AllowPostfixWildcard);
}
我添加了一个建议解决方案的屏幕截图:

要仅获取与所有子查询匹配的文档,必须使用
Intersect
。请参阅RavenDB文档中的文章。

因为搜索默认使用或。有一个可选参数将其设置为使用和。

很抱歉,可能我不够清楚。我的问题不是搜索之间的OR,而是lucene查询是“OrganizationType:Club(Name:(F*)ShortName:(F*)”,而不是“OrganizationType:Club和(Name:(F*)ShortName:(F*)”。我怎样才能做到这一点呢?在搜索中使用重载,告诉它使用一个与SearchOptions一起试用过的ANDI。Lucene查询是:“OrganizationType:Club(And Name:(liv*))ShortName:(liv*)”,我得到一个聚合异常。我在问题下方添加了一个屏幕截图来说明问题。