Search
[wolnelektury.git] / src / catalogue / models / snippet.py
index 3c9384c..4c25b8c 100644 (file)
@@ -1,23 +1,27 @@
 from django.db import models
+from django.contrib.postgres.indexes import GinIndex
 from django.contrib.postgres.search import SearchVector, SearchVectorField
-from search.utils import build_search_vector
+from search.utils import UnaccentSearchVector
 
 
 class Snippet(models.Model):
     book = models.ForeignKey('Book', models.CASCADE)
     sec = models.IntegerField()
-    # header_type ?
-    # header_span ?
     text = models.TextField()
     search_vector = SearchVectorField()
 
+    class Meta:
+        indexes = [
+            GinIndex('search_vector', name='search_vector_idx'),
+        ]
+            
     def save(self, *args, **kwargs):
         super().save(*args, **kwargs)
         if not self.search_vector:
             self.update()
 
     def update(self):
-        self.search_vector = build_search_vector('text')
+        self.search_vector = UnaccentSearchVector('text')
         self.save()
 
     @classmethod