Ich benutze den neuen 2.X NEST Client. Dieser Teil ist wichtig, denn es gab sehr viele brechende Änderungen, die hier mögliche Antworten bewirken.Abrufen des Anfragekörpers der Suchantwort mit dem 2.X NEST Client
Zuvor habe ich das Glimpse Elasticsearch-Plugin verwendet, um die von NEST generierten zugrunde liegenden Abfragen anzuzeigen. Es scheint jedoch, dass dieses Plugin nicht mehr kompatibel mit 2.X NEST ist. Als Ergebnis versuche ich eine Problemumgehung zu finden, um die JSON-Abfrage zu sehen. Das Problem hier ist, dass die alte Art, auf response.RequestInformation
zuzugreifen, um an den Anfragekörper zu gelangen, weg ist. Es scheint durch eine Kombination von ApiCall
, CallDetails
und DebugInformation
ersetzt worden zu sein. Das Problem hierbei ist, dass in all diesen Feldern das Anforderungsbyte-Array null ist, es sei denn, Sie fügen .DisableDirectStreaming()
der ConnectionSettings
Instanz hinzu, die Sie an ElasticClient
übergeben. Das Problem dort ist, dass ich alles mit der Abhängigkeitsinjektion mit Ninject handle. In so etwas wie einer Controller-Aktion habe ich keinen Zugriff auf die ConnectionSettings
Instanz, um eine solche Änderung vorzunehmen. Ich nehme an, ich könnte einfach .DisableDirectStreaming()
weltweit hinzufügen, aber ich habe keine Ahnung, was die möglichen Folgen davon sind, und die Dokumentation dazu ist frustrierend spärlich.
Also, es gibt ein paar Wege für eine Antwort hier, von denen ich alle akzeptieren werde. Erstens, wenn es jemand geschafft hat, das Glimpse-Plugin mit 2.X zu betreiben, würde ich gerne wissen, was Sie getan haben. Basierend auf der Tatsache, dass sich die zugrundeliegende API dramatisch verändert hat, gehe ich davon aus, dass das Plugin grundsätzlich kaputt ist, bis jemand es für 2.X abzweigt oder Elastic seine eigene Version herausbringt (die angeblich an einem unbestimmten Punkt in der Zukunft).
Zweitens, wenn es einen Weg gibt, um die Anfrage Körper zu bekommen, ohne Direct Streaming zu deaktivieren, und ich habe es einfach verpasst. Ich würde mich freuen Führung dort.
Drittens, wenn jemand irgendwelche Ideen für hat, wie ich direkten Streaming auf der Controller-Aktion Ebene deaktivieren kann, ohne meine Ninject Setup zu beeinflussen oder sie global anwenden, können Sie in läutet.
Schließlich wäre es toll, Wenn jemand vom Elastic-Team mich über die Auswirkungen der Deaktivierung des direkten Streaming aufklären kann und welche potenziellen Probleme daraus entstehen können, kann ich eine Entscheidung darüber treffen, ob es sinnvoll wäre, sie global anzuwenden oder nicht.
Seit dieser Antwort ist es möglich, direktes Streaming pro Anfrage in NEST 5.x zu deaktivieren - wird sehen, ob es auf 2.x rückportiert werden kann –
Für diejenigen, die diese Informationen suchen, können Sie es finden hier - https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/debug-information.html - der 'SearchDescriptor' akzeptiert' RequestConfiguration' –