在 OData search.in 中,如果我保留默认分隔符 '、' 或 ' ',则不会返回任何值
In OData search.in, if I leave the default delimiter of ', ' or ' ', no value is returned
我正在测试搜索 api 过滤并有一个类型为 Collection(Edm.String) 的 relatedTags 参数,当我执行以下过滤器时:
relatedTags/any(rt: search.in(rt, 'Tag 3, Tag 2'))
相当于
relatedTags/any(rt: rt eq 'Tag 3' or rt eq 'Tag 2')
只有后者会 return 结果,其中字符串数组 relatedTags 具有这些值之一。
如果我将分隔符设置为 '|'
或 ','
:
relatedTags/any(rt: search.in(rt, 'Tag 3|Tag 2', '|'))
它会 return 与上面的 eq
示例相同吗?
即使将分隔符指定为 ' ,'
或 ' '
也不会 return 结果。
relatedTags/any(rt: search.in(rt, 'Tag 3, Tag 2', ' ,'))
search.in OData 语言参考页有一个示例,与我在第一个示例中编写的相同:
Rooms/any(room: room/Tags/any(tag: search.in(tag, 'wifi, tub')))
您的查询与示例不同,因为逗号分隔列表中的值包含 space。您需要将分隔符设置为逗号,而不是 space 或逗号:
relatedTags/any(rt: search.in(rt, 'Tag 3,Tag 2', ','))
您可能还需要 trim 白色 space 标记周围才能使其正常工作。
我正在测试搜索 api 过滤并有一个类型为 Collection(Edm.String) 的 relatedTags 参数,当我执行以下过滤器时:
relatedTags/any(rt: search.in(rt, 'Tag 3, Tag 2'))
相当于
relatedTags/any(rt: rt eq 'Tag 3' or rt eq 'Tag 2')
只有后者会 return 结果,其中字符串数组 relatedTags 具有这些值之一。
如果我将分隔符设置为 '|'
或 ','
:
relatedTags/any(rt: search.in(rt, 'Tag 3|Tag 2', '|'))
它会 return 与上面的 eq
示例相同吗?
即使将分隔符指定为 ' ,'
或 ' '
也不会 return 结果。
relatedTags/any(rt: search.in(rt, 'Tag 3, Tag 2', ' ,'))
search.in OData 语言参考页有一个示例,与我在第一个示例中编写的相同:
Rooms/any(room: room/Tags/any(tag: search.in(tag, 'wifi, tub')))
您的查询与示例不同,因为逗号分隔列表中的值包含 space。您需要将分隔符设置为逗号,而不是 space 或逗号:
relatedTags/any(rt: search.in(rt, 'Tag 3,Tag 2', ','))
您可能还需要 trim 白色 space 标记周围才能使其正常工作。