Azure 搜索和使用以数组结尾



我正在使用具有以下搜索参数的最新Microsoft.Azure.SearchSDK。我有 MFR-1、MFR-2、MFR-3 等过滤器 ID。 我正在尝试带回任何具有以 MFR 开头的过滤器 ID 的记录。

似乎这应该是简单的查询,但我没有找到一种方法来使其与 SDK 一起工作。

var Params = new SearchParameters()
{
SearchMode = SearchMode.Any,
QueryType = QueryType.Full,
Top = 72,
Skip = 0,
IncludeTotalResultCount = true,
Filter = "FilterIDs/any(c: c eq 'MFR-57')",
OrderBy = new List<string> { "Sort", "Title"},
Facets = new List<string>() { "Filters,count:500,sort:value" }
};

数据如下所示:

{
"id": "691",
"RecordType": "product",
"FilterIDs": [
"MFR-106",
"36-250",
"36-265"
],
}

我已经尝试过这个,但它似乎不适用于标题所暗示的数组。

在 Azure 搜索中包含/在数组中(预览版(

根据我的理解,您正在寻找一种过滤器表达式,可以过滤其FilterIDs字符串集合(数组(包含以"MFR"开头的项目值的所有记录。

正如官方文件所示:

字符串集合的 lambda 表达式内部,唯一的比较 可以使用的运算符是 EQ 和 ne。

所以恐怕这里没有办法做模糊搜索。

但是如果你的过滤器ID是可枚举的,也许你可以使用过滤器表达式如下:

FilterIDs/any(c: c eq 'MFR-1') or FilterIDs/any(c: c eq 'MFR-2') or FilterIDs/any(c: c eq 'MFR-3') or ....

我认为这将是一个解决方法,它对我有用. 希望对您有所帮助。

最新更新