def search(self, queryset):

        table_queries = []

        searches = {}

        # Add per-column searches where necessary
        for name, term in self.config['column_searches'].items():
            for term in set(split_terms(term)):
                columns = searches.setdefault(term, {})
                columns[name] = self.columns[name]

        # Global search terms apply to all columns
        for term in split_terms(self.config['search']):
            # Allow global terms to overwrite identical queries that were single-column
            searches[term] = self.columns.copy()

        for term in searches.keys():
            term_queries = []
            for name, column in searches[term].items():
                search_f = getattr(self, 'search_%s' % (name,), self._search_column)
                q = search_f(column, term)
                if q is not None:
                    term_queries.append(q)
            if term_queries:
                table_queries.append(reduce(operator.or_, term_queries))

        if table_queries:
            q = reduce(operator.and_, table_queries)
            queryset = queryset.filter(q)

        return queryset
Set a value in the cache. If timeout is given, that timeout will be used
dataset/ETHPy150Open pivotal-energy-solutions/django-datatable-view/datatableview/datatables.py/Datatable.search--crossover with--dataset/ETHPy150Open grantjenks/python-diskcache/diskcache/djangocache.py/DjangoCache.set