
全文检索框架和搜索引擎的安装和配置:
- 安装全文检索框架,pip install django-haystack,
- 安装搜索引擎,pip install whoosh
- settings里面配置
- 1,注册haystack
- INSTALLED_APPS=[
- # 注册全文搜索框架
- 'haystack',
- ]
- 2,配置,
-
# 全文检索框架的配置
HAYSTACK_CONNECTIONS = {
'default': {
# 使用whoosh引擎
# 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
# 索引文件路径
'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
}
} # 当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'这是一个路径:
- 我找到Linux下面的路径:
- /home/andy/.virtualenvs/lq_py3/lib/python3.5/site-packages/haystack/backends
- 然后把我Windows下面的文件移动到这个地方,
- 这里面有jieba分词的代码,
生成索引文件:
- 搜索的是商品表的数据,
- 你要有索引文件的生成,最终是需要goossku这个类,新建一个这个类的一个索引类,
- 在templates下面建立文件夹search,下面建立indexes,这两个文件名都是固定的,
- 下面再建立goods文件夹,建立索引文件,
- 现在就可以生成索引数据了,
- >python manage.py rebuild_index
全文检索的应用:
- 两个地方,
- 1,是页面上搜索的地方要有一个提交搜索的目标路径,
- 2,是后台路由需要配置这个路径,这个是交给haystack来处理的,
- 还需要一个搜索结果页的html页面,
更改分词的方式:
- 比如,很不错的草莓,
- 但是你搜索不错,这是查不到的,
- 所以默认whoosh里面的引擎,在分解词语的时候分词不好,有些词分的不好,
- 我们要使用一个中文分词的包,就是jieba分词,这是中文默认的分词,比默认的要好,
- 这个分词怎么用:
- 第一步:安装
- 安装,pip install jieba,
- 有什么用?下面就是演示:
- import jieba,
- srt=‘很不错的草莓’
- res=jieba.cut(str,cut_all=True)
- for val in res:
- print(val)
很
不错
的
草莓- 这就是分词的结果,很不错,
- 那么怎么用呢?
- 第二步:在haystack目录新建一个文件,
- 还是进入Linux中,haystack的目录下:
- /home/andy/.virtualenvs/lq_py3/lib/python3.5/site-packages/haystack/backends
- 然后把Windows下面的文件ChineseAnalyzer.py复制一份到这个地方,
- 然后就可以了,
- 1,安装
- 2,新建一个文件,
- 3,修改文件,
- 4,修改配置,
- 5,重新建立索引,这次就是使用jieba分词了