<强>在Django项目中,当我们用到全文检索框架时,如果想要很好的支持中文分词方式,我们可以使用“结巴“分词。强>
1。安装jieba分词模块
<代码> pip安装jieba 代码>
2。找到你项目环境下的干草堆目录、下面是我的项目环境路径。
<代码>/home/michael/.virtualenvs/Django_test/lib/python3.5/网站/干草堆/后端/代码>
3。在上面的那个目录中创建一个ChineseAnalyzer.py文件
<代码>进口jieba 从发出嘶嘶声。分析进口记号赋予器,令牌 类ChineseTokenizer(记号赋予器): def __call__(自我价值,位置=False,识字课=False, keeporiginal=False, removestops=True, start_pos=0, start_char=0,模式=",* * kwargs): t=令牌(位置、字符removestops=removestops模式=模式,* * kwargs) seglist=jieba。削减(价值,cut_all=True) 对w seglist: t。原始=t。文本=w t。提高=1.0 如果职位: t。pos=start_pos + value.find (w) 如果字符: t。startchar=start_char + value.find (w) t。endchar=start_char + value.find (w) + len (w) 收益率t def ChineseAnalyzer (): 返回ChineseTokenizer () 代码>
4。复制whoosh_backend.py文件并改名whoosh_cn_backend.py(注:我这里使用的是呼全文检索引擎)
<代码> cp whoosh_backend。py whoosh_cn_backend.py 代码>
5。打开whoosh_cn_backend.py文件,引入中文分析类,内部采用jieba分词。
<代码>从.ChineseAnalyzer进口ChineseAnalyzer 代码>
6。更改词语分析类
<代码>找到 分析仪=StemmingAnalyzer () 改为 代码分析器=ChineseAnalyzer () >
7。修改settings.py文件中的配置项
<代码> HAYSTACK_CONNECTIONS={ “默认”:{ # whoosh_cn_backend就是复制出来的那个文件 “发动机”:“haystack.backends.whoosh_cn_backend.WhooshEngine”, “路径”:os.path。加入(BASE_DIR whoosh_index), } }代码>
8。重建创建索引文件
<代码> python管理。py rebuild_index 代码>