Azure 搜索单个查询子句限制是否适用于“search.in”筛选器子句?

Does the Azure Search individual query clause limit apply to a `search.in` filter clause?

我想使用 Azure 搜索的 search.in 筛选子句来进行安全修整。我预计需要将最多 10,000 个 ID 传递给该子句(通常不是,但有时是这样)。

Azure 搜索文档声明单个查询子句限制为 32kb:https://docs.microsoft.com/en-us/rest/api/searchservice/lucene-query-syntax-in-azure-search#bkmk_querysizelimits

我担心会达到这个限制,所以我用一个大的(100,000 个项目)search.in 查询做了一个峰值,它似乎工作得很好。

但我担心我违背了文档似乎建议的内容。 While the documentation does say that a filter with a search.in is ideal for security trimming,我可以安全地使用 search.in 和大量 ID 吗?

32 KB 的限制适用于完整 Lucene 查询中的术语,不适用于过滤器(通过 search.ismatchsearch.ismatchscoring 将 Lucene 查询与过滤器混合使用时除外)。我们专门设计了 search.in 来处理像您这样的情况。

请参阅Security Trimming in Azure Search了解更多信息。