Pythons Elasticsearch DSL 라이브러리를 사용하여 FacetedSearch
클래스를 직접 작성하여 def search(self)
에서 추가 필터링으로 검색을 수행했습니다. 이제 통계를 집계하기 위해 수업을 재사용하고 싶습니다. DRY 상태를 유지하려면이 클래스를 다시 사용하고 성능상의 이유로 모든 필터링을 유지하면서 필요하지 않은 경우 패싯 계산을 일시적으로 사용하지 않도록 설정하고 싶습니다. 그래서 질문은 FacetedSearch
검색에서 일시적으로면을 생략 할 수 있습니까?Python의 FacetedSearch에서 패싯을 일시적으로 사용 중지합니다.
0
A
답변
1
그럼 Search
개체의 쿼리 만 사용하고 집계는 사용하지 않으시겠습니까? 이 경우 객체의 search()
메서드를 호출하여 Search
객체를 가져 와서 거기에서부터 이동하십시오.
당신은 집계를 원하지만, 방금 집계를 포함한 원시 Search
객체를 얻기 위해 build_search
방법을 사용하여 파이썬 수준 facets
계산을 건너 뛰십시오.
고마워요! 게다가 build-in post_filter 대신 표준 필터를 사용해야한다는 것을 알았으므로'self.aggregate()'를 건너 뛰고 다른'self.filter (s)'를 사용하는 자체 build_search 함수를 만들었습니다. 'self.build_search()'가'__init__'에서 자동으로 실행되는 이유가 있습니까? 내 경우에는 쓸모가 없어. – igo
'__init__'에서 실행되는 이유는 항상 필요하기 때문에 필요에 따라 생성하는 속성 양식을 만들기 위해 fo를 실행하는 것이 좋습니다. –