kb: add keywords, to boost searches (#8472)
This commit is contained in:
parent
8992e65d93
commit
1d318732a2
|
@ -27,6 +27,7 @@ class Page(models.Model):
|
|||
title = models.CharField(_('Title'), max_length=200)
|
||||
slug = models.SlugField(_('Slug'))
|
||||
content = RichTextField(_('Text'))
|
||||
keywords = models.CharField(_('Keywords'), max_length=200, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ['title']
|
||||
|
|
|
@ -23,16 +23,17 @@ from haystack import indexes
|
|||
from .models import Page
|
||||
|
||||
class PageIndex(indexes.SearchIndex, indexes.Indexable):
|
||||
title = indexes.CharField(model_attr='title', boost=1.5)
|
||||
title = indexes.CharField(model_attr='title', boost=3)
|
||||
text = indexes.CharField(document=True)
|
||||
text_auto = indexes.EdgeNgramField()
|
||||
slug = indexes.CharField(model_attr='slug', indexed=False)
|
||||
keywords = indexes.CharField(model_attr='keywords', boost=1.5)
|
||||
|
||||
def get_model(self):
|
||||
return Page
|
||||
|
||||
def prepare_text(self, obj):
|
||||
return obj.title + ' ' + HTMLParser().unescape(strip_tags(obj.content))
|
||||
return obj.title + ' ' + obj.keywords + ' ' + HTMLParser().unescape(strip_tags(obj.content))
|
||||
|
||||
def prepare_text_auto(self, obj):
|
||||
return self.prepare_text(obj)
|
||||
|
|
|
@ -19,4 +19,9 @@
|
|||
|
||||
{{ object.content|safe }}
|
||||
|
||||
<p class="keywords">
|
||||
{% trans 'Keywords:' %}
|
||||
{{ object.keywords }}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -455,3 +455,13 @@ button.save.pinned {
|
|||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
input#id_keywords {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
p.keywords {
|
||||
padding-top: 1em;
|
||||
margin-top: 1em;
|
||||
border-top: 1px dotted #D8D8D8;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue