我正在使用 Azure.search.mocument.models.SearchOptions,我正在尝试将过滤器设置为
not(answer in ('X', 'Y'))
。所以它看起来像这样:
SearchOptions searchOptions = new SearchOptions()
.setFilter("not(answer in ('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
过滤器?
您可以尝试以下操作吗:
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。