Пример #1
0
 def _get_frequency_of(self, elements: IResultSet, query: SearchQuery) -> dict:
     frequency_of = {}
     if query.frequency_of:
         index = self.get_index(query.frequency_of)
         for value in index.unique_values():
             value_query = index.eq(value)
             value_elements = value_query.execute(resolver=None)
             intersect = elements.intersect(value_elements)
             count = len(intersect)
             if count == 0:
                 continue
             frequency_of[value] = count
     return frequency_of
Пример #2
0
 def _get_frequency_of(self, elements: IResultSet,
                       query: SearchQuery) -> dict:
     frequency_of = {}
     if query.frequency_of:
         index = self.get_index(query.frequency_of)
         for value in index.unique_values():
             value_query = index.eq(value)
             value_elements = value_query.execute(resolver=None)
             intersect = elements.intersect(value_elements)
             count = len(intersect)
             if count == 0:
                 continue
             frequency_of[value] = count
     return frequency_of
Пример #3
0
 def _get_group_by(self, elements: IResultSet, query: SearchQuery) -> dict:
     group_by = {}
     if query.group_by:
         index = self.get_index(query.group_by)
         for value in index.unique_values():
             value_query = index.eq(value)
             value_elements = value_query.execute(resolver=None)
             intersect = elements.intersect(value_elements)
             if len(intersect) == 0:
                 continue
             group_by[value] = intersect
     sort_index = self.get_index(query.sort_by)
     if sort_index is not None and query.sort_by != "reference":
         for key, intersect in group_by.items():
             intersect_sorted = intersect.sort(sort_index, reverse=query.reverse, limit=query.limit or None)
             group_by[key] = intersect_sorted
     for key, intersect in group_by.items():
         group_by[key] = self._resolve(intersect.all(), query)
     return group_by
Пример #4
0
 def _get_group_by(self, elements: IResultSet, query: SearchQuery) -> dict:
     group_by = {}
     if query.group_by:
         index = self.get_index(query.group_by)
         for value in index.unique_values():
             value_query = index.eq(value)
             value_elements = value_query.execute(resolver=None)
             intersect = elements.intersect(value_elements)
             if len(intersect) == 0:
                 continue
             group_by[value] = intersect
     sort_index = self.get_index(query.sort_by)
     if sort_index is not None and query.sort_by != 'reference':
         for key, intersect in group_by.items():
             intersect_sorted = intersect.sort(sort_index,
                                               reverse=query.reverse,
                                               limit=query.limit or None)
             group_by[key] = intersect_sorted
     for key, intersect in group_by.items():
         group_by[key] = self._resolve(intersect.all(), query)
     return group_by