<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_concept_filter(self, concept, concept_name=None):
 """ Add a concept filter :param concept: concept which will be used as lowercase string in a search term :param concept_name: name of the place where there will be searched for """

        if concept in self.query_params.keys():
            if not concept_name:
                concept_name = concept
            if isinstance(self.query_params[concept], list):
                if self.es_version == '1':
                    es_filter = {'or': []}
                    for or_filter in self.query_params[concept]:
                        es_filter['or'].append(self._build_concept_term(concept_name, or_filter))
                else:
                    es_filter = {"bool": {"should": []}}
                    for or_filter in self.query_params[concept]:
                        es_filter["bool"]["should"].append(self._build_concept_term(concept_name, or_filter))
            else:
                es_filter = self._build_concept_term(concept_name, self.query_params[concept])
            self.filters.append(es_filter)