单个查询是..
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的值,而忽略了...