Skip to content
2 changes: 1 addition & 1 deletion complaint_search/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
]
)

AGG_EXCLUDE_FIELDS = ["company", "zip_code"]
AGG_EXCLUDE_FIELDS = ["zip_code"]

CHUNK_SIZE = 512

Expand Down
25 changes: 15 additions & 10 deletions complaint_search/es_builders.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,13 +339,13 @@ class AggregationBuilder(BaseBuilder):
)

_AGG_SIZE_MAP = {
"company.raw": AGG_COMPANY_DEFAULT, # 6500
"company": AGG_COMPANY_DEFAULT, # 6500
"state": AGG_STATE_DEFAULT, # 100
"zip_code": AGG_ZIPCODE_DEFAULT, # 26000
"issue.raw": AGG_ISSUE_DEFAULT, # 200
"sub_issue.raw": AGG_SUBISSUE_DEFAULT, # 250
"product.raw": AGG_PRODUCT_DEFAULT, # 30
"sub_product.raw": AGG_SUBPRODUCT_DEFAULT, # 90
"issue": AGG_ISSUE_DEFAULT, # 200
"sub_issue": AGG_SUBISSUE_DEFAULT, # 250
"product": AGG_PRODUCT_DEFAULT, # 30
"sub_product": AGG_SUBPRODUCT_DEFAULT, # 90
}

def __init__(self):
Expand All @@ -358,19 +358,19 @@ def add_exclude(self, field_name_list):
self.exclude += field_name_list

def build_parent_child_field_agg(
self, agg_heading_name, es_parent_name, es_child_name
self, agg_heading_name, es_parent_name, es_child_name, parent_size, child_size
):

field_agg = {
agg_heading_name: {
"terms": {
"size": self._AGG_SIZE_MAP.get(es_parent_name, 10),
"size": parent_size,
"field": es_parent_name,
},
"aggs": {
es_child_name: {
"terms": {
"size": self._AGG_SIZE_MAP.get(es_child_name, 10),
"size": child_size,
"field": es_child_name,
}
}
Expand Down Expand Up @@ -398,19 +398,24 @@ def build_one(self, field_name):
es_child_name = self._OPTIONAL_FILTERS_PARAM_TO_ES_MAP.get(
self._OPTIONAL_FILTERS_CHILD_MAP.get(field_name)
)
parent_field_size = self._AGG_SIZE_MAP.get(field_name, 10)
child_field_size = self._AGG_SIZE_MAP.get(self._OPTIONAL_FILTERS_CHILD_MAP.get(field_name), 10)

field_aggs["aggs"] = self.build_parent_child_field_agg(
field_name, es_field_name, es_child_name
field_name, es_field_name, es_child_name, parent_field_size, child_field_size
)
else:
field_aggs["aggs"] = {
field_name: {
"terms": {
"size": self._AGG_SIZE_MAP.get(es_field_name, 10),
"size": self._AGG_SIZE_MAP.get(field_name, 10),
"field": es_field_name,
}
}
}

print(f"field_aggs: {field_aggs['aggs']}")

# Create a subset of the filters
incl_subset = {
k: v for k, v in self.include_clauses.items() if k != field_name
Expand Down