in src/elasticSearchService.ts [615:632]
private static buildElasticSearchFilter(searchFilters: SearchFilter[]): any[] {
const partitions: SearchFilter[][] = partition(searchFilters, (filter) => filter.logicalOperator === 'OR');
const orSearchFilterParts: any[] = partitions[0].map(ElasticSearchService.buildElasticSearchFilterPart).flat();
const andSearchFilterParts: any[] = partitions[1].map(ElasticSearchService.buildElasticSearchFilterPart).flat();
let filterQuery: any[] = [];
if (andSearchFilterParts.length > 0) {
filterQuery = andSearchFilterParts;
}
if (orSearchFilterParts.length > 0) {
filterQuery.push({
bool: {
should: orSearchFilterParts,
},
});
}
return filterQuery;
}