如何在Azure Search SDK中的关键字之间指定AND和OR检索?

时间:2018-09-18 05:35:14

标签: c# azure azure-table-storage azure-search azure-search-.net-sdk

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

这样的关键字
  • 数字,技术,3D
  • 数字,技术,AR
  • 数字,制造,化工
  • 数字,制造业,药品

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

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

应该获取我所有具有列值的记录

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

我无法执行此操作。我知道SearchMode.Any和SearchMode.All,但是我无法找出如何实现上述两个组之间的OR。

1 个答案:

答案 0 :(得分: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);