Azure Search数组属性AND逻辑过滤:如何实现全匹配查询
Azure Search实现标签AND逻辑过滤方案
针对你提到的需求——筛选同时包含1和3的文档,有两种可行的过滤语法,分场景说明:
场景1:LabelId是字符串类型(当前示例格式)
直接用两个search.in条件通过and连接,每个条件单独检查是否包含目标标签:
search.in(LabelId, '1') and search.in(LabelId, '3')
这个逻辑会返回同时包含"1"和"3"的文档,对应你示例里的第二条数据。
场景2:将LabelId改为集合类型(更推荐的方式)
如果可以修改字段定义,把LabelId设为Collection(Edm.String)类型(存储时自动拆分为数组,比如["1","2","4","5"]),可以用更直观的多any条件组合:
LabelId/any(t: t eq '1') and LabelId/any(t: t eq '3')
这种方式更清晰,也避免字符串匹配可能带来的误判(比如标签"10"不会被当成包含"1")。
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

