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