얼마전 프로젝트를 할 때 엘리스틱서치를 사용하기 위해서

라이브러리 수준의 코드를 만들었었기 때문에, 나의 코드와 라이브러리의 코드를 비교해보고 싶어서 코드를 읽어보게 되었다


https://github.com/elastic/elasticsearch-dsl-py/blob/master/elasticsearch_dsl/search.py


우선 search.py 파일 Search 클래스의 filter부터 봤다


filter 메서드는 query 메서드의 wrapper처럼 동작한다


그리고 query 메서드는, 실제로는 메서드가 아니라 ProxyDescriptor라는 오브젝트이다


그리고 실제로 query문은 query.py Q 펑션에 의해 세팅된다 (ProxyDescriptor.__set__()에서 볼수있듯이)


Q는 Query


 - 추가 예정 -



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/