diff -r 20c41a7e2173 -r 1a061f244254 web/ldt/text/models.py --- a/web/ldt/text/models.py Fri Nov 19 18:14:02 2010 +0100 +++ b/web/ldt/text/models.py Tue Nov 23 17:54:36 2010 +0100 @@ -9,6 +9,9 @@ import os.path import uuid import lxml +import lucene +from ldt.ldt_utils import STORE, ANALYZER +from annotindexer import AnnotIndexer #from django.core.management.validation import max_length def Property(func): @@ -120,6 +123,31 @@ def create_annotation(external_id, uri=None, tags=None, title=None, description=None, text=None, color=None, creator=None, contributor=None, creation_date=None, update_date=None): annotation = Annotation(external_id=external_id, uri=uri, tags=tags, title=title, description=description, text=text, color=color, creator=creator, contributor=contributor, creation_date=creation_date, update_date=update_date) annotation.save() + annotation.index_annot() return annotation + + def delete(self): + super(Annotation, self).delete() + lucene.getVMEnv().attachCurrentThread() + writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) + writer.deleteDocuments(lucene.Term("external_id", self.external_id)) + writer.close() + + def index_annot(self): + lucene.getVMEnv().attachCurrentThread() + writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) + annotl = [self,] + indexer = AnnotIndexer(annotl,writer) + indexer.index_all() + writer.close() + + def update_index(self): + lucene.getVMEnv().attachCurrentThread() + writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED) + writer.deleteDocuments(lucene.Term("external_id", self.external_id)) + writer.close() + self.index_annot() + + \ No newline at end of file