def get_queryset(self): if not 'query' in self.request.GET: return Note.objects.none() if 'page' in self.request.GET: page = int(self.request.GET['page']) else: page = 0 try: index = SearchIndex() if 'course_id' in self.request.GET: raw_results = index.search(self.request.GET['query'], self.request.GET['course_id'], page=page) else: raw_results = index.search(self.request.GET['query'], page=page) except Exception: logger.error("Error with IndexDen:\n" + traceback.format_exc()) self.error = True return Note.objects.none() else: self.error = False instances = Note.objects.in_bulk(raw_results.ordered_ids) results = [] for id in raw_results.ordered_ids: if id in instances: results.append((instances[id], raw_results.snippet_dict[id])) self.has_more = raw_results.has_more return results
def handle(self, *args, **kwargs): index = SearchIndex() for note in Note.objects.iterator(): try: print "Indexing {n}".format(n=note) index.add_note(note) except Exception, e: traceback.print_exc() continue
def note_save_receiver(sender, **kwargs): if not 'instance' in kwargs: return note = kwargs['instance'] update_note_counts(note) try: index = SearchIndex() if kwargs['created']: index.add_note(note) else: index.update_note(note, note.old_instance) except Exception: logger.error("Error with IndexDen:\n" + traceback.format_exc())
def note_delete_receiver(sender, **kwargs): if not 'instance' in kwargs: return note = kwargs['instance'] # Update course and school counts of how # many notes they have update_note_counts(kwargs['instance']) # Remove document from search index try: index = SearchIndex() index.remove_note(note) except Exception: logger.error("Error with IndexDen:\n" + traceback.format_exc()) if note.user: GenericKarmaEvent.create_event(note.user, note.name, GenericKarmaEvent.NOTE_DELETED)