我们在 Azure 上使用 Azure Search 和 DocumentDB。搜索由引用目标索引和数据源的索引器填充。数据源绑定到 DocumentDb 实例。
在将索引器绑定到 DocumentDB 时,我们编写了一个简单的 SQL 查询来检索文档并展平层次结构。问题是,为了使层次结构变平,您必须使用大量 SQL 别名,这使得 SQL 查询非常冗长。
最近字段的数量增长了很多,现在每当运行索引器时,我们都会收到错误:
SQL 查询文本超出最大限制 8192
看来我们已经达到了这种方法的极限。8192 个字符根本不是很多,尤其是考虑到我们必须用大量别名来扁平化层次结构。
您可以通过进入 Azure 门户中的查询资源管理器并输入简单的 SQL 查询并为列提供一个非常长的别名来轻松重现此问题,该别名采用 8192 限制的查询长度,您将看到该问题。
有谁知道解决方法?看起来我们可能不得不避免使用搜索索引器功能并采用手动方法,即简单地使用搜索 API 在索引中创建/更新/删除文档。
我们还考虑过尝试减少别名的大小/冗长,但这会破坏很多现有代码。
感谢您的帮助