安装需要的包
1 第一步:
全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理。
haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎
whoosh:纯Python编写的全文搜索引擎对于小型的站点,whoosh已经足够使用
jieba:一款免费的中文分词包
1 )在虚拟环境中依次安装需要的包。
pip install django-haystack
pip install whoosh
pip install jieba
2 注册app
INSTALLED_APPS = (
...
'haystack' ,
)
创建的models
class GoodInfo (models.Model) :
message = models.CharField(max_length=100 )
content = models.TextField()
def __str__ (self) :
return self.message
3 在settings 中配置搜索引擎
# 全文搜索引擎的配置
HAYSTACK_CONNECTIONS = {
'default' : {
# 使用whoosh引擎
'ENGINE' : 'haystack.backend.whoosh_cn_backend.WhooshEngine' ,
# 索引文件路径
'PATH' : os.path.join (BASE_DIR, 'whoosh_index' ),
}
}
#当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
4 在项目的urls.py中添加搜索的配置。
url(r'^search/' , include('haystack.urls' )),
5 在创建的app目录下创建search_indexes.py 编写一下程序