>백엔드 개발 >Golang >Olivere/elastic elasticsearch go 라이브러리를 사용할 때 생성된 쿼리를 디버깅/보는 방법은 무엇입니까?

Olivere/elastic elasticsearch go 라이브러리를 사용할 때 생성된 쿼리를 디버깅/보는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-15 09:09:081169검색

使用 olivere/elastic elasticsearch go 库时如何调试/查看生成的查询?

생성된 쿼리를 디버깅하고 보는 것은 Olivere/elastic elasticsearch go 라이브러리를 사용할 때 매우 중요한 단계입니다. 개발 중에 우리가 작성한 쿼리가 올바른지 확인하고 예상한 결과를 반환해야 하는 경우가 종종 있습니다. PHP 편집기 Xinyi는 생성된 쿼리를 디버깅하고 확인하여 코드가 제대로 작동하는지 확인하는 몇 가지 방법을 소개합니다. 개발 환경이든 프로덕션 환경이든 이러한 팁은 코드를 더 잘 이해하고 디버깅하는 데 도움이 됩니다.

질문 내용

elasticsearch 서버로 보낸 실제 json 값 쿼리와 마찬가지로 https://github.com/olivere/elastic 라이브러리에서 생성된 쿼리가 무엇인지 알아보려고 합니다.

추적 로그에 대한 일부 문서가 있지만(제가 사용한 문서는 아래에 표시됨) 여기에는 쿼리가 포함되지 않은 것 같습니다.

으아악

여기 문서에서도 관련 내용을 찾을 수 없는 것 같습니다. https://pkg.go.dev/github.com/olivere/elastic?utm_source=godoc

Workaround

문서에 따르면 직접 제공할 수 있습니다. http 클라이언트:

// 클라이언트를 받으세요. 여기에 자신만의 http 클라이언트를 제공할 수도 있습니다.
클라이언트, 오류 := elastic.newclient(elastic.seterrorlog(errorlog))

좋아, 문서가 끝났습니다 :)...실제로 doer인터페이스를 제공해야 합니다.
doer 接口的结构,并装饰了 http.do() 인터페이스를 구현하는 구조체를 인스턴스화하고 http.do()를 장식하여 http.request 덤프를 기록했습니다.

면책조항: 이 질문의 범위에서 이것은 Docker 컨테이너에서 실행되는 탄력적 인스턴스에 대해 제가 사용하는 것의 최소한의 예일 뿐입니다. 프로덕션에서는 안전하지 않은 TLS를 실행하지 말고, 자격 증명을 하드코딩하지 말고, 필요에 따라 http 전송을 구성하세요.

으아악

다음은 출력입니다:

으아악

이용도 settracelog 가능할 거라 생각했는데 알려진 경로를 선택했습니다.

위 내용은 Olivere/elastic elasticsearch go 라이브러리를 사용할 때 생성된 쿼리를 디버깅/보는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제