生成されたクエリのデバッグと表示は、olivere/elastic elasticsearch go ライブラリを使用する場合に非常に重要な手順です。開発中は、構築したクエリが正しく、期待した結果が返されることを確認する必要がよくあります。 PHP エディター Xinyi では、コードが適切に動作していることを確認するために、生成されたクエリをデバッグおよび表示するためのいくつかの方法を紹介します。開発環境でも運用環境でも、これらのヒントはコードをより深く理解し、デバッグするのに役立ちます。
https://github.com/olivere/elastic ライブラリが、elasticsearch サーバーに送信される実際の json 値クエリとしてどのようなクエリを生成するかを調べようとしています。
トレース ログに関するドキュメントがいくつかあります (私が使用するものを以下に示します) が、これにはクエリが含まれていないようです。
リーリーまた、ここのドキュメントにも関連するものが見つからないようです: https://pkg.go.dev/github.com/olivere/elastic?utm_source=godoc
ドキュメントによると、独自の http クライアントを提供できます:
// クライアントを取得します。ここで独自の http クライアントを提供することもできます。
クライアント、エラー:= elastic.newclient(elastic.seterrorlog(errorlog))
さて、これでドキュメントは終わりです :)...実際には、doer
インターフェースを提供する必要があります。
doer
インターフェイスを実装する構造体をインスタンス化し、http.request ダンプをログに記録するために http.do()
を装飾しました。
免責事項: この質問の範囲に関して、これは、Docker コンテナーで実行されているエラスティック インスタンスに対して使用しているものの最小限の例にすぎません。運用環境では、安全でない TLS を実行しない、資格情報をハードコーディングしない、必要に応じて http トランスポートを構成しないなどです。 リーリー
これは出力です:リーリー
#settracelog も使用できるだろうと思いましたが、既知のパスを選択しました。
以上がOrivere/elastic elasticsearch go ライブラリを使用するときに生成されたクエリをデバッグ/表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。