Commit 89b4bf00f6e37c5823ae7b3e693ea8b3559e4281

Authored by Sergio Oliveira
1 parent 1749e8ce

Using haystack to index hits

Hits will be used in relevance score (should be done in #20).
Closes #21.
src/proxy/search_indexes.py
... ... @@ -21,6 +21,7 @@ class WikiIndex(indexes.SearchIndex, indexes.Indexable):
21 21 type = indexes.CharField()
22 22 icon_name = indexes.CharField(indexed=False)
23 23 author_and_username = indexes.CharField(null=True, stored=False)
  24 + hits = indexes.IntegerField()
24 25  
25 26 # trac extra fields
26 27 collaborators = indexes.CharField(
... ... @@ -35,6 +36,9 @@ class WikiIndex(indexes.SearchIndex, indexes.Indexable):
35 36 def get_updated_field(self):
36 37 return 'modified'
37 38  
  39 + def prepare_hits(self, obj):
  40 + return obj.hits
  41 +
38 42 def prepare_author(self, obj):
39 43 author = obj.get_author()
40 44 if author:
... ... @@ -80,6 +84,7 @@ class TicketIndex(indexes.SearchIndex, indexes.Indexable):
80 84 icon_name = indexes.CharField(indexed=False)
81 85 tag = indexes.CharField(model_attr='status', null=True)
82 86 author_and_username = indexes.CharField(null=True, stored=False)
  87 + hits = indexes.IntegerField()
83 88  
84 89 # trac extra fields
85 90 milestone = indexes.CharField(model_attr='milestone', null=True)
... ... @@ -99,6 +104,9 @@ class TicketIndex(indexes.SearchIndex, indexes.Indexable):
99 104 def get_updated_field(self):
100 105 return 'modified'
101 106  
  107 + def prepare_hits(self, obj):
  108 + return obj.hits
  109 +
102 110 def prepare_author(self, obj):
103 111 author = obj.get_author()
104 112 if author:
... ... @@ -149,6 +157,7 @@ class RevisionIndex(indexes.SearchIndex, indexes.Indexable):
149 157 type = indexes.CharField()
150 158 icon_name = indexes.CharField(indexed=False)
151 159 author_and_username = indexes.CharField(null=True, stored=False)
  160 + hits = indexes.IntegerField()
152 161  
153 162 # trac extra fields
154 163 repository_name = indexes.CharField(
... ... @@ -162,6 +171,9 @@ class RevisionIndex(indexes.SearchIndex, indexes.Indexable):
162 171 def get_updated_field(self):
163 172 return 'created'
164 173  
  174 + def prepare_hits(self, obj):
  175 + return obj.hits
  176 +
165 177 def prepare_author(self, obj):
166 178 author = obj.get_author()
167 179 if author:
... ...
src/super_archives/search_indexes.py
... ... @@ -35,6 +35,7 @@ class ThreadIndex(indexes.SearchIndex, indexes.Indexable):
35 35 model_attr='mailinglist__get_absolute_url',
36 36 indexed=False,
37 37 )
  38 + hits = indexes.IntegerField()
38 39  
39 40 def get_model(self):
40 41 return Thread
... ... @@ -42,6 +43,9 @@ class ThreadIndex(indexes.SearchIndex, indexes.Indexable):
42 43 def get_updated_field(self):
43 44 return 'latest_message__received_time'
44 45  
  46 + def prepare_hits(self, obj):
  47 + return obj.hits
  48 +
45 49 def prepare_author(self, obj):
46 50 return obj.message_set.first().from_address.get_full_name()
47 51  
... ...