--- a/web/ldt/text/models.py Thu Dec 16 14:55:25 2010 +0100
+++ b/web/ldt/text/models.py Thu Dec 16 15:00:30 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