NINE——Django项目之新闻搜索功能实现(搜索功能分析;全文搜索引擎elasticsearch介绍;docker介绍及安装
warning:
这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
from haystack import indexes
from .models import News
# 定义一个索引类
class NewsIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
# 指定模型
def get_model(self):
return News
# 为搜索索引提供数据
def index_queryset(self, using=None):
return self.get_model().objects.all()
# 在模板中定义搜索字段
# news_text.txt 文件内容可能如下:
# {{ object.title }}
# {{ object.content }}这段代码定义了一个简单的搜索索引类NewsIndex,它将News模型中的title和content字段用于全文搜索。text字段被标记为文档字段,表示它是用于搜索的全文字段,并且使用了模板来指定使用title和content字段的内容作为索引文本。index_queryset方法指定了应该索引News模型的所有实例。在实际使用时,还需要在Django的模板系统中定义news_text.txt模板,并在该模板中指定如何提取News对象的title和content字段用于搜索。
评论已关闭