0

我正在开发一个 Azure 函数,它调用 Azure 搜索,根据一些关键字获取搜索结果,然后将其发送回前端应用程序。我的 Azure 搜索数据源(Azure 表)中有一个可搜索的列。它包含逗号分隔的字符串和关键字,如

  • 数字、技术、3D
  • 数字、技术、增强现实
  • 数字、制造、化工
  • 数字、制造、医药

现在我希望进行如下搜索:

  • (数字、技术、3D)或(数字、制造、化学品)

这应该让我获取列值为的所有记录

  • 数字、技术、3D
  • 数字、制造、化工

我无法实现这一点。我知道 SearchMode.Any 和 SearchMode.All 但我无法找出如何在上述两组之间实现 OR。

4

1 回答 1

0

由于您的目标是查询精确匹配,因此您应该使用 OData 过滤器而不是搜索查询。您可以像这样使用 .NET SDK 执行此操作(假设您的可过滤字段名称称为“类别”):

string filter = "Categories eq 'Digital, Technology, 3D' or Categories eq 'Digital, Manufacturing, Chemicals'";
var params = new SearchParameters() { Filter = filter };
var result = indexClient.Documents.Search("*", params);
于 2018-09-18T16:25:24.563 回答