Commit 604b15a3986b9d57607704e46b082fcf1c6c3eb7

Authored by Luan
1 parent a35b1541

Upgrading search indexes

src/proxy/search_indexes.py
... ... @@ -10,20 +10,24 @@ from .models import Ticket, Wiki, Revision
10 10  
11 11 class WikiIndex(indexes.SearchIndex, indexes.Indexable):
12 12 # common fields
13   - text = indexes.CharField(document=True, use_template=True)
14   - url = indexes.CharField(model_attr='get_absolute_url')
  13 + text = indexes.CharField(document=True, use_template=True, stored=False)
  14 + url = indexes.CharField(model_attr='get_absolute_url', indexed=False)
15 15 title = indexes.CharField(model_attr='name')
16 16 description = indexes.CharField(null=True)
17 17 author = indexes.CharField(null=True)
18   - author_url = indexes.CharField(null=True)
  18 + author_url = indexes.CharField(null=True, indexed=False)
19 19 created = indexes.DateTimeField(model_attr='created', null=True)
20 20 modified = indexes.DateTimeField(model_attr='modified', null=True)
21 21 type = indexes.CharField()
22   - icon_name = indexes.CharField()
23   - author_username = indexes.CharField(null=True)
  22 + icon_name = indexes.CharField(indexed=False)
  23 + author_and_username = indexes.CharField(null=True, stored=False)
24 24  
25 25 # trac extra fields
26   - collaborators = indexes.CharField(model_attr='collaborators', null=True)
  26 + collaborators = indexes.CharField(
  27 + model_attr='collaborators',
  28 + null=True,
  29 + stored=False,
  30 + )
27 31  
28 32 def get_model(self):
29 33 return Wiki
... ... @@ -37,7 +41,7 @@ class WikiIndex(indexes.SearchIndex, indexes.Indexable):
37 41 return author.get_full_name()
38 42 return obj.author
39 43  
40   - def prepare_author_username(self, obj):
  44 + def prepare_author_and_username(self, obj):
41 45 author = obj.get_author()
42 46 if not author:
43 47 return obj.author
... ... @@ -64,18 +68,18 @@ class WikiIndex(indexes.SearchIndex, indexes.Indexable):
64 68  
65 69 class TicketIndex(indexes.SearchIndex, indexes.Indexable):
66 70 # common fields
67   - text = indexes.CharField(document=True, use_template=True)
68   - url = indexes.CharField(model_attr='get_absolute_url')
  71 + text = indexes.CharField(document=True, use_template=True, stored=False)
  72 + url = indexes.CharField(model_attr='get_absolute_url', indexed=False)
69 73 title = indexes.CharField()
70 74 description = indexes.CharField(null=True)
71 75 author = indexes.CharField(null=True)
72   - author_url = indexes.CharField(null=True)
  76 + author_url = indexes.CharField(null=True, indexed=False)
73 77 created = indexes.DateTimeField(model_attr='created', null=True)
74 78 modified = indexes.DateTimeField(model_attr='modified', null=True)
75 79 type = indexes.CharField()
76   - icon_name = indexes.CharField()
  80 + icon_name = indexes.CharField(indexed=False)
77 81 tag = indexes.CharField(model_attr='status', null=True)
78   - author_username = indexes.CharField(null=True)
  82 + author_and_username = indexes.CharField(null=True, stored=False)
79 83  
80 84 # trac extra fields
81 85 milestone = indexes.CharField(model_attr='milestone', null=True)
... ... @@ -83,7 +87,11 @@ class TicketIndex(indexes.SearchIndex, indexes.Indexable):
83 87 severity = indexes.CharField(model_attr='severity', null=True)
84 88 reporter = indexes.CharField(model_attr='reporter', null=True)
85 89 keywords = indexes.CharField(model_attr='keywords', null=True)
86   - collaborators = indexes.CharField(model_attr='collaborators', null=True)
  90 + collaborators = indexes.CharField(
  91 + model_attr='collaborators',
  92 + null=True,
  93 + stored=False,
  94 + )
87 95  
88 96 def get_model(self):
89 97 return Ticket
... ... @@ -97,7 +105,7 @@ class TicketIndex(indexes.SearchIndex, indexes.Indexable):
97 105 return author.get_full_name()
98 106 return obj.author
99 107  
100   - def prepare_author_username(self, obj):
  108 + def prepare_author_and_username(self, obj):
101 109 author = obj.get_author()
102 110 if not author:
103 111 return obj.author
... ... @@ -130,21 +138,23 @@ class TicketIndex(indexes.SearchIndex, indexes.Indexable):
130 138  
131 139 class RevisionIndex(indexes.SearchIndex, indexes.Indexable):
132 140 # common fields
133   - text = indexes.CharField(document=True, use_template=True)
134   - url = indexes.CharField(model_attr='get_absolute_url')
  141 + text = indexes.CharField(document=True, use_template=True, stored=False)
  142 + url = indexes.CharField(model_attr='get_absolute_url', indexed=False)
135 143 title = indexes.CharField()
136 144 description = indexes.CharField(model_attr='message', null=True)
137 145 author = indexes.CharField(null=True)
138   - author_url = indexes.CharField(null=True)
  146 + author_url = indexes.CharField(null=True, indexed=False)
139 147 created = indexes.DateTimeField(model_attr='created', null=True)
140 148 modified = indexes.DateTimeField(model_attr='created', null=True)
141 149 type = indexes.CharField()
142   - icon_name = indexes.CharField()
143   - author_username = indexes.CharField(null=True)
  150 + icon_name = indexes.CharField(indexed=False)
  151 + author_and_username = indexes.CharField(null=True, stored=False)
144 152  
145 153 # trac extra fields
146   - repository_name = indexes.CharField(model_attr='repository_name')
147   - revision = indexes.CharField(model_attr='rev')
  154 + repository_name = indexes.CharField(
  155 + model_attr='repository_name',
  156 + stored=False
  157 + )
148 158  
149 159 def get_model(self):
150 160 return Revision
... ... @@ -158,7 +168,7 @@ class RevisionIndex(indexes.SearchIndex, indexes.Indexable):
158 168 return author.get_full_name()
159 169 return obj.author
160 170  
161   - def prepare_author_username(self, obj):
  171 + def prepare_author_and_username(self, obj):
162 172 author = obj.get_author()
163 173 if not author:
164 174 return obj.author
... ...
src/search/forms.py
... ... @@ -63,7 +63,7 @@ class ColabSearchForm(SearchForm):
63 63  
64 64 if self.cleaned_data['author']:
65 65 sqs = sqs.filter(
66   - author_username__contains=self.cleaned_data['author']
  66 + author_and_username__contains=self.cleaned_data['author']
67 67 )
68 68  
69 69 if self.cleaned_data['milestone']:
... ...
src/super_archives/search_indexes.py
... ... @@ -7,25 +7,33 @@ from .models import Thread
7 7  
8 8 class ThreadIndex(indexes.SearchIndex, indexes.Indexable):
9 9 # common fields
10   - text = indexes.CharField(document=True, use_template=True)
11   - url = indexes.CharField(model_attr='get_absolute_url', null=True)
  10 + text = indexes.CharField(document=True, use_template=True, stored=False)
  11 + url = indexes.CharField(
  12 + model_attr='get_absolute_url',
  13 + null=True,
  14 + indexed=False
  15 + )
12 16 title = indexes.CharField(model_attr='latest_message__subject_clean')
13 17 description = indexes.CharField(use_template=True)
14   - latest_description = indexes.CharField(model_attr='latest_message__body')
  18 + latest_description = indexes.CharField(
  19 + model_attr='latest_message__body',
  20 + indexed=False,
  21 + )
15 22 created = indexes.DateTimeField()
16 23 modified = indexes.DateTimeField(
17 24 model_attr='latest_message__received_time'
18 25 )
19 26 author = indexes.CharField(null=True)
20   - author_url = indexes.CharField(null=True)
  27 + author_url = indexes.CharField(null=True, indexed=False)
21 28 type = indexes.CharField()
22   - icon_name = indexes.CharField()
  29 + icon_name = indexes.CharField(indexed=False)
23 30 tag = indexes.CharField(model_attr='mailinglist__name')
24   - collaborators = indexes.CharField(use_template=True)
  31 + collaborators = indexes.CharField(use_template=True, stored=False)
25 32  
26   - author_username = indexes.CharField(null=True)
  33 + author_and_username = indexes.CharField(null=True, stored=False)
27 34 mailinglist_url = indexes.CharField(
28   - model_attr='mailinglist__get_absolute_url'
  35 + model_attr='mailinglist__get_absolute_url',
  36 + indexed=False,
29 37 )
30 38  
31 39 def get_model(self):
... ... @@ -37,7 +45,7 @@ class ThreadIndex(indexes.SearchIndex, indexes.Indexable):
37 45 def prepare_author(self, obj):
38 46 return obj.message_set.first().from_address.get_full_name()
39 47  
40   - def prepare_author_username(self, obj):
  48 + def prepare_author_and_username(self, obj):
41 49 from_address = obj.message_set.first().from_address
42 50 if not from_address.user:
43 51 return from_address.get_full_name()
... ...
src/super_archives/templates/search/indexes/super_archives/thread_description.txt
1 1 {% for message in object.message_set.iterator %}
2   - {% if not spam %}
3   - {{ message.body }}
4   - {% endif %}
  2 + {{ message.body }}
5 3 {% endfor %}
... ...