新しい2.X NESTクライアントを使用しています。その部分は重要です。なぜなら、ここで潜在的な回答に影響を与えるような大きな変化がたくさんあるからです。2.X NESTクライアントで検索応答のリクエスト本体を取得する
以前は、Glimpse Elasticsearchプラグインを使用して、NESTによって生成された基本クエリを確認しました。しかし、プラグインはもはや2.X NESTと互換性がないように見えます。結果として、私はJSONクエリを見るための回避策を見つけようとしています。ここでの問題は、リクエスト本体にアクセスするための古い方法であるresponse.RequestInformation
にアクセスしてしまったということです。これは、ApiCall
,CallDetails
、およびDebugInformation
の組み合わせに置き換えられているようです。ここで問題となるのは、これらのすべてで、ConnectionSettings
インスタンスに.DisableDirectStreaming()
を追加しないと、リクエストバイト配列がElasticClient
に渡されない限り、リクエストバイト配列がnullであることです。問題は、Ninjectで依存関係注入を使用していることをすべて処理していることです。そのため、コントローラアクションのようなものでは、ConnectionSettings
インスタンスへのアクセス権がありません。私はちょうど.DisableDirectStreaming()
をグローバルに追加することができると思いますが、私はそれの潜在的な結果が何であるか分かりませんし、これに関する文書はぎりぎりとしていません。
ここに回答の道がありますが、私はそれを受け入れます。まず、誰かが2.Xで動作するGlimpseプラグインを取得できたら、あなたがしたことを知りたい。しかし、基本的なAPIが劇的に変化したという事実に基づいて、私の前提は、プラグインが誰かが2.Xのためにブランチするまで根本的に壊れているか、またはElasticが独自のバージョンを持っているということです。未来)。
第2に、直接ストリーミングを無効にせずにリクエスト本体にアクセスする方法がある場合、それを逃しただけです。私はそこの指導に感謝します。誰もが、私はコントローラのアクション・レベルで直接ストリーミングを無効にする方法のための任意のアイデアを持っている場合、私のNinjectの設定に影響を与えたり、グローバルに適用することなく、チャイム気軽に
第三に、。
最後に、それは素晴らしいことですElasticチームのメンバーが私に直接ストリーミングを無効にする効果とそれから生じる可能性のある問題を教えてもらえれば、グローバルに適用するかどうかを決めることができます。
NEST 5.xでは、要求ごとに直接ストリーミングを無効にすることができます.2x –
にバックポートできるかどうかを調べることができますここ - https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/debug-information.html - 'SearchDescriptor'は' RequestConfiguration'を受け入れます。 –