如何在Azure AI Search的SearchOptions中使用Not In?OData逻辑运算符问题
Azure Search 实现“not in”筛选的正确方式
你可以通过**not (answer in ('X', 'Y'))**实现需求,你之前的报错核心原因是代码里的筛选表达式缺少闭合括号,同时部分写法不符合Azure Search的OData语法规范:
错误代码问题分析
你的原代码:
SearchOptions searchOptions = new SearchOptions() .setFilter("not(answer in ('X', 'Y')");
这里的表达式not(answer in ('X', 'Y')缺少了结尾的),导致语法不合法,触发了Invalid expression错误。
正确写法
SearchOptions searchOptions = new SearchOptions() .setFilter("not (answer in ('X', 'Y'))");
其他尝试的问题说明
not answer in ('X', 'Y'):不符合OData语法要求,not后面必须紧跟带括号的布尔表达式answer nin ('X', 'Y'):Azure Search的OData语法不支持nin操作符,官方仅支持not逻辑非操作搭配in使用
而你测试的answer eq 'X'能正常运行,是因为该表达式语法完全符合规范,没有格式问题。
内容的提问来源于stack exchange,提问作者ban_ana
相关产品推荐
相关产品推荐

