您可以通过搜索和过滤器实现您想要的:
// Approach #1
string currentDate = DateTime.UtcNow.ToString("O");
var parameters = new SearchParameters()
{
Filter = "soldDate lt " + currentDate,
Top = 5
}
results = indexClient.Documents.Search<Hotel>("john", parameters);
这会将文档过滤为仅在currentDate 之前具有soldDate 的文档,然后搜索过滤后的文档,以便在任何可搜索字段包含“john”时匹配文档。您可以将其缩小到 title 字段,如下所示:
// Approach #2
string currentDate = DateTime.UtcNow.ToString("O");
var parameters = new SearchParameters()
{
Filter = "soldDate lt " + currentDate,
SearchFields = new[] { "title" },
Top = 5
}
results = indexClient.Documents.Search<Hotel>("john", parameters);
或者像这样:
// Approach #3
string currentDate = DateTime.UtcNow.ToString("O");
var parameters = new SearchParameters()
{
Filter = "soldDate lt " + currentDate,
QueryType = QueryType.Full,
Top = 5
}
results = indexClient.Documents.Search<Hotel>("title:john", parameters);
您使用哪种方式取决于您是否希望将所有搜索字词限制在一组特定的字段(方法 #2),或者是否希望特定字词与特定字段匹配(方法 #3)。
SearchParameters 的引用位于 docs.microsoft.com。