Azure で Azure Search と DocumentDB を使用しています。検索は、ターゲット インデックスとデータソースを参照するインデクサーによって設定されます。データソースは DocumentDb インスタンスにバインドされています。
インデクサーを DocumentDB にバインドする際に、ドキュメントを取得して階層をフラット化する単純な SQL クエリを作成しました。問題は、階層を平坦化するために、多くの SQL エイリアスを使用する必要があるため、SQL クエリが非常に冗長になることです。
最近、フィールドの数が大幅に増えたため、インデクサーを実行するたびに次のエラーが発生します。
SQL クエリ テキストが上限の 8192 を超えました
このアプローチでは限界に達したようです。8192 文字は、特に大量のエイリアスで階層を平坦化する必要があることを考えると、それほど多くはありません。
この問題は、Azure Portal のクエリ エクスプローラーに移動して単純な SQL クエリを入力し、8192 の制限のクエリ長を取る非常に長いエイリアスを列に与えることで簡単に再現できます。問題が発生します。
回避策を知っている人はいますか?おそらく、検索インデクサー機能を避け、検索 API を使用してインデックス内のドキュメントを作成/更新/削除するという手動のアプローチを取る必要があるようです。
エイリアスのサイズ/冗長性を減らすことも考えましたが、これは多くの既存のコードを壊します。
ご協力いただきありがとうございます