AND查询在嵌套C#中无法正常工作>> [

问题描述 投票:0回答:1
通过嵌套的单个查询检索了我期望的结果,但是当我尝试同时使用这两个查询来创建逻辑AND查询时,它似乎仅返回MatchPhrase的值,而忽略了DateRange。

单个查询是..

resultsList = Client.SearchAsync<AuditLog>(s => s .From(0) .Take(10) .Query(q => q .MatchPhrase(mp => mp .Field("audit_Action") .Query("Successful logout") ) ) ).Result.Documents.ToList();

和...

resultsList = Client.SearchAsync<AuditLog>(s => s .From(0) .Take(10) .Query(q => q .DateRange(r => r .Field("audit_TimeStamp") .GreaterThanOrEquals("2017-03-07T13:00:00") .LessThanOrEquals("2017-03-07T14:00:00") ) ) ).Result.Documents.ToList();

这两个查询返回正确的行数,分别为10和5,但是当我合并两个查询时,它仍然返回10行,而不是预期的1行。我修改后的查询是...

resultsList = Client.SearchAsync<AuditLog>(s => s .From(0) .Take(10) .Query(q => q .Bool(b => b .Must(m1 => m1 .DateRange(r => r .Field("audit_TimeStamp") .GreaterThanOrEquals("2017-03-07T13:00:00") .LessThanOrEquals("2017-03-07T14:00:00") ) ) .Must(m1 => m1 .MatchPhrase(m => m .Field("audit_Action") .Query("Successful logout") ) ) ) ) ).Result.Documents.ToList();

不知道出什么问题了,但认为可能是因为我必须接受并且它们正在被OR'd

通过嵌套的单个查询检索了我期望的内容,但是当我尝试同时使用这两个查询来创建逻辑AND查询时,它似乎仅返回MatchPhrase的值,而忽略了...

nest
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.