如何在SearchOptions中使用“Not In”? - Azure AI 搜索中的 OData 逻辑运算符

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

我正在使用 Azure.search.mocument.models.SearchOptions,我正在尝试将过滤器设置为

not(answer in ('X', 'Y'))
。所以它看起来像这样:

SearchOptions searchOptions = new SearchOptions()
    .setFilter("not(answer in ('X', 'Y')");

我尝试过的:

  • 不在 ('X', 'Y') 中回答
  • 不是(回答('X','Y')
  • 回答nin('X','Y')

此外,

.setFilter("answer eq 'X')
效果很好。

在执行前两个过滤器(不是“nin”过滤器)时出现此错误:

Invalid expression: Expression contains an unsupported OData language feature.

但在 Azure 搜索文档中,它说支持“不”:https://learn.microsoft.com/en-us/azure/search/search-query-odata-逻辑-operators

有什么方法可以做一个“not in”表达式而不是做一个

answer ne X and answer ne Y
过滤器?

java azure-cognitive-search
1个回答
0
投票

您可以尝试以下操作吗:

SearchOptions searchOptions = new SearchOptions()
    .setFilter("answer ne 'X' or answer ne 'Y');

这应该过滤掉答案不等于

X
Y
的所有文档。

您可以在此处阅读有关 OData 比较运算符的更多信息:https://learn.microsoft.com/en-us/azure/search/search-query-odata-comparison-operators

© www.soinside.com 2019 - 2024. All rights reserved.