ACS:search.in 不支持 odata 过滤器语法中的特殊字符
ACS: search.in doesn't support special characters in odata filters syntax
特殊字符不能与 ACS 中的 search.in 运算符一起使用,例如,这不会从 ACS 中获取任何值
search.in(category, 'Books & reference')
。
我也试过如下编码特殊字符,但还是不行。
search.in(category, 'Books%20%26%20reference')
search.in(category, 'Books %26 reference')
search.in(category, 'Books+%26+reference')
search.in(category, 'Books & reference')
唯一有效的方法是使用 eq
运算符,如下所示
category eq 'Books & reference'
但是根据 ACS 文档,seach.in 在有多个属性值要过滤时性能更高,也更方便
search.in(category, 'Movies,Education,Tools')
比使用eq运算符更方便如下
category eq 'Books' OR category eq 'Education' OR category eq 'Tools'
请尝试更改:
search.in(category, 'Books & reference')
至
search.in(category, 'Books & reference', '|')
本质上,在第一个中,space
被视为分隔符。在第二个中,您明确告诉您使用 pipe (|)
作为分隔符。
考虑到管道字符在您的搜索值中不存在,您的类别字段将搜索 Books & reference
而在第一种情况下,将搜索 Book
、&
、和类别字段中的 reference
个值。
这就是 documentation
对分隔符的说法(强调 我的):
A string where each character is treated as a separator when parsing
the valueList parameter. The default value of this parameter is ' ,'
which means that any values with spaces and/or commas between them
will be separated. If you need to use separators other than spaces and
commas because your values include those characters, you can specify
alternate delimiters such as '|' in this parameter.
特殊字符不能与 ACS 中的 search.in 运算符一起使用,例如,这不会从 ACS 中获取任何值
search.in(category, 'Books & reference')
。
我也试过如下编码特殊字符,但还是不行。
search.in(category, 'Books%20%26%20reference')
search.in(category, 'Books %26 reference')
search.in(category, 'Books+%26+reference')
search.in(category, 'Books & reference')
唯一有效的方法是使用 eq
运算符,如下所示
category eq 'Books & reference'
但是根据 ACS 文档,seach.in 在有多个属性值要过滤时性能更高,也更方便
search.in(category, 'Movies,Education,Tools')
比使用eq运算符更方便如下
category eq 'Books' OR category eq 'Education' OR category eq 'Tools'
请尝试更改:
search.in(category, 'Books & reference')
至
search.in(category, 'Books & reference', '|')
本质上,在第一个中,space
被视为分隔符。在第二个中,您明确告诉您使用 pipe (|)
作为分隔符。
考虑到管道字符在您的搜索值中不存在,您的类别字段将搜索 Books & reference
而在第一种情况下,将搜索 Book
、&
、和类别字段中的 reference
个值。
这就是 documentation
对分隔符的说法(强调 我的):
A string where each character is treated as a separator when parsing the valueList parameter. The default value of this parameter is ' ,' which means that any values with spaces and/or commas between them will be separated. If you need to use separators other than spaces and commas because your values include those characters, you can specify alternate delimiters such as '|' in this parameter.