全文检索里的组件简介
1. 什么是haystack?
1. haystack是django的开源搜索框架,该框架支持Solr,Elasticsearch,Whoosh, *Xapian*搜索引擎,不用更改代码,直接切换引擎,减少代码量。
2. 搜索引擎使用Whoosh,这是一个由纯Python实现的全文搜索引擎, 没有二进制文件等,比较小巧,配置比较简单,当然性能自然略低。
3. 中文分词Jieba,由于Whoosh自带的是英文分词,对中文的分词支持不是太好,故用jieba替换whoosh的分词组件
2. 什么是jieba?
很多的搜索引擎对中的支持不友好,jieba作为一个中文分词器就是加强对中文的检索功能
3. Whoosh是什么
1. Python的全文搜索库,Whoosh是索引文本及搜索文本的类和函数库
2. Whoosh 自带的是英文分词,对中文分词支持不太好,使用 jieba 替换 whoosh 的分词组件。
haystack配置使用(前后端分离)
1. 安装需要的包
2. 在setting.py中配置
3. 定义数据库
索引文件生成
1. 在子应用下创建索引文件
在子应用的目录下,创建一个名为 myapp/search_indexes.py 的文件
2.指定索引模板文件
创建文件路径命名必须这个规范:templates/search/indexes/应用名称/模型类名称_text.txt
如:
templates/search/indexes/myapp/articlepost_text.txt
3.使用命令创建索引
替换成jieba分词
1.将haystack源码复制到项目中并改名
索引文件使用
1. 编写视图
到此这篇关于django haystack实现全文检索的示例代码的文章就介绍到这了,更多相关django haystack 全文检索内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.youkuaiyun.com/m0_47202787/article/details/106879844