diff --git a/apps/documents/search_indexes.py b/apps/documents/search_indexes.py deleted file mode 100644 index 4d51335446..0000000000 --- a/apps/documents/search_indexes.py +++ /dev/null @@ -1,80 +0,0 @@ -from __future__ import absolute_import - -import datetime - -from unidecode import unidecode -from haystack import indexes - -from .models import Document - -''' - uuid = models.CharField(max_length=48, blank=True, editable=False) - document_type = models.ForeignKey(DocumentType, verbose_name=_(u'document type'), null=True, blank=True) - description = models.TextField(blank=True, null=True, verbose_name=_(u'description')) - date_added = models.DateTimeField(verbose_name=_(u'added'), db_index=True, editable=False) - document = models.ForeignKey(Document, verbose_name=_(u'document'), editable=False) - major = models.PositiveIntegerField(verbose_name=_(u'mayor'), default=1, editable=False) - minor = models.PositiveIntegerField(verbose_name=_(u'minor'), default=0, editable=False) - micro = models.PositiveIntegerField(verbose_name=_(u'micro'), default=0, editable=False) - release_level = models.PositiveIntegerField(choices=RELEASE_LEVEL_CHOICES, default=RELEASE_LEVEL_FINAL, verbose_name=_(u'release level'), editable=False) - serial = models.PositiveIntegerField(verbose_name=_(u'serial'), default=0, editable=False) - timestamp = models.DateTimeField(verbose_name=_(u'timestamp'), editable=False) - comment = models.TextField(blank=True, verbose_name=_(u'comment')) - - # File related fields - file = models.FileField(upload_to=get_filename_from_uuid, storage=STORAGE_BACKEND(), verbose_name=_(u'file')) - mimetype = models.CharField(max_length=64, default='', editable=False) - encoding = models.CharField(max_length=64, default='', editable=False) - filename = models.CharField(max_length=255, default=u'', editable=False, db_index=True) - checksum = models.TextField(blank=True, null=True, verbose_name=_(u'checksum'), editable=False) - -class DocumentPage(models.Model): - """ - Model that describes a document version page including it's content - """ - document_version = models.ForeignKey(DocumentVersion, verbose_name=_(u'document version')) - content = models.TextField(blank=True, null=True, verbose_name=_(u'content')) - page_label = models.CharField(max_length=32, blank=True, null=True, verbose_name=_(u'page label')) - page_number = models.PositiveIntegerField(default=1, editable=False, verbose_name=_(u'page number'), db_index=True) - - -register('document', Document, _(u'document'), [ - {'name': u'document_type__name', 'title': _(u'Document type')}, - {'name': u'documentversion__mimetype', 'title': _(u'MIME type')}, - {'name': u'documentversion__filename', 'title': _(u'Filename')}, - {'name': u'documentmetadata__value', 'title': _(u'Metadata value')}, - {'name': u'documentversion__documentpage__content', 'title': _(u'Content')}, - {'name': u'description', 'title': _(u'Description')}, - {'name': u'tags__name', 'title': _(u'Tags')}, - {'name': u'comments__comment', 'title': _(u'Comments')}, - ] -) -''' - -class DocumentIndex(indexes.SearchIndex, indexes.Indexable): - # Content - text = indexes.CharField(document=True, use_template=True) - # filename - filename = indexes.CharField(model_attr='filename', boost=1.125) - cleaned_filename = indexes.CharField(model_attr='filename', boost=1.125) - # description - #description = indexes.CharField(null=True, model_attr='description') - # tags - #tags = indexes.CharField(null=True, model_attr='tags') - - - #date_added = indexes.DateTimeField(model_attr='date_added') - - def get_model(self): - return Document - - def index_queryset(self): - """Used when the entire index for model is updated.""" - #return self.get_model().objects.filter(date_added__lte=datetime.datetime.now()) - return self.get_model().objects.filter(pk__lte=300) - - def prepare_cleaned_filename(self, obj): - #print 'CLEAN' - return unidecode(obj.filename) - #print "1,2: %s - %s" % (obj.filename, after) - #return after diff --git a/apps/documents/templates/search/indexes/documents/document_text.txt b/apps/documents/templates/search/indexes/documents/document_text.txt deleted file mode 100644 index 4c142984a8..0000000000 --- a/apps/documents/templates/search/indexes/documents/document_text.txt +++ /dev/null @@ -1,3 +0,0 @@ -{{ object.filename }} -{{ object.description }} -{{ object.latest_version.content }} diff --git a/apps/dynamic_search/search_indexes.py b/apps/dynamic_search/search_indexes.py new file mode 100644 index 0000000000..c1a0e5e80a --- /dev/null +++ b/apps/dynamic_search/search_indexes.py @@ -0,0 +1,45 @@ +from __future__ import absolute_import + +import datetime + +from unidecode import unidecode +from haystack import indexes + +from documents.models import Document + +''' + date_added = models.DateTimeField(verbose_name=_(u'added'), db_index=True, editable=False) + document = models.ForeignKey(Document, verbose_name=_(u'document'), editable=False) + major = models.PositiveIntegerField(verbose_name=_(u'mayor'), default=1, editable=False) + minor = models.PositiveIntegerField(verbose_name=_(u'minor'), default=0, editable=False) + micro = models.PositiveIntegerField(verbose_name=_(u'micro'), default=0, editable=False) + release_level = models.PositiveIntegerField(choices=RELEASE_LEVEL_CHOICES, default=RELEASE_LEVEL_FINAL, verbose_name=_(u'release level'), editable=False) + serial = models.PositiveIntegerField(verbose_name=_(u'serial'), default=0, editable=False) + timestamp = models.DateTimeField(verbose_name=_(u'timestamp'), editable=False) + comment = models.TextField(blank=True, verbose_name=_(u'comment')) + + checksum = models.TextField(blank=True, null=True, verbose_name=_(u'checksum'), editable=False) + + page_label = models.CharField(max_length=32, blank=True, null=True, verbose_name=_(u'page label')) + page_number = models.PositiveIntegerField(default=1, editable=False, verbose_name=_(u'page number'), db_index=True) +''' + +class DocumentIndex(indexes.SearchIndex, indexes.Indexable): + text = indexes.CharField(document=True, use_template=True) + #fractional_filename = indexes.CharField(model_attr='filename')#, boost=1.125) + cleaned_filename = indexes.CharField(model_attr='filename')#, boost=1.125) + + def get_model(self): + return Document + + #def index_queryset(self): + # """Used when the entire index for model is updated.""" + # #return self.get_model().objects.filter(date_added__lte=datetime.datetime.now()) + # return self.get_model().objects.filter(pk__lte=3000) + + #def prepare_cleaned_filename(self, obj): + # #print 'CLEAN' + # return 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' + # return unidecode(obj.filename) + # #print "1,2: %s - %s" % (obj.filename, after) + # #return after diff --git a/apps/dynamic_search/templates/search/indexes/documents/document_text.txt b/apps/dynamic_search/templates/search/indexes/documents/document_text.txt new file mode 100644 index 0000000000..3226d8f509 --- /dev/null +++ b/apps/dynamic_search/templates/search/indexes/documents/document_text.txt @@ -0,0 +1,11 @@ +{{ object.content }} +{{ object.metadata_values_string }} +{{ object.cleaned_filename }} +{{ object.filename }} +{{ object.extension_split.1 }} +{{ object.document_type }} +{{ object.file_mimetype }} +{{ object.description|default:' ' }} +{{ object.flat_comments }} +{{ object.flat_tags }} +{{ object.uuid }}