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

问题描述 投票:0回答:1

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

  • 数字,技术,3D
  • 数字,技术,AR
  • 数字,制造,化学品
  • 数字,制造,药品

现在我想进行如下搜索:

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

它应该以列值为我取所有记录

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

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

c# azure azure-table-storage azure-search azure-search-.net-sdk
1个回答
0
投票

由于您的目标是查询完全匹配,因此应使用OData过滤器而不是搜索查询。你可以像这样使用.NET SDK(假设你的可过滤字段名称叫做'Categories'):

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);
© www.soinside.com 2019 - 2024. All rights reserved.