private static buildElasticSearchFilter()

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;
    }