Django實現(xiàn)whoosh搜索引擎使用jieba分詞
本文介紹了Django實現(xiàn)whoosh搜索引擎使用jieba分詞,分享給大家,具體如下:
Django版本:3.0.4
python包準備:
pip install django-haystack pip install jieba
使用jieba分詞
1.cd到site-packages內(nèi)的haystack包,創(chuàng)建并編輯ChineseAnalyzer.py文件
# (注意:pip安裝的是django-haystack,但是實際包的文件夾名字為haystack) cd /usr/local/lib/python3.8/site-packages/haystack/backends/ # 創(chuàng)建并編輯ChineseAnalyzer.py文件 vim ChineseAnalyzer.py
2.修改ChineseAnalyzer.py文件內(nèi)容
import jieba
from whoosh.analysis import Tokenizer, Token
class ChineseTokenizer(Tokenizer):
def __call__(self,
value,
positions=False,
chars=False,
keeporiginal=False,
removestops=True,
start_pos=0,
start_char=0,
mode='',
**kwargs):
t = Token(positions, chars, removestops=removestops, mode=mode,**kwargs)
seglist = jieba.cut(value, cut_all=True)
for w in seglist:
t.original = t.text = w
t.boost = 1.0
if positions:
t.pos = start_pos + value.find(w)
if chars:
t.startchar = start_char + value.find(w)
t.endchar = start_char + value.find(w) + len(w)
yield t
def ChineseAnalyzer():
return ChineseTokenizer()
3.替換分詞器
cp whoosh_backend.py whoosh_cn_backend.py vim whoosh_cn_backend.py
# 導入ChineseAnalyzer,并將原有的StemmingAnalyser替換為ChineseAnalyzer from .ChineseAnalyzer import ChineseAnalyzer # from whoosh.analysis import StemmingAnalyzer
vim替換命令: %s/StemmingAnalyzer/ChineseAnalyzer/g
4.修改setting.py文件
# 全文搜索框架配置
HAYSTACK_CONNECTIONS = {
'default': {
# 使用whoosh引擎
# 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
# 使用jieba分詞
'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
# 索引文件路徑
'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
},
}
5.重新建立索引
python manage.py rebuild_index
可以看到,已經(jīng)使用了jieba分詞。

到此這篇關(guān)于Django實現(xiàn)whoosh搜索引擎使用jieba分詞的文章就介紹到這了,更多相關(guān)Django jieba分詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于 Python json中l(wèi)oad和loads區(qū)別
這篇文章主要介紹了關(guān)于 Python json中l(wèi)oad和loads區(qū)別,文章也有簡單的說明它們之間的相同點,然后詳細介紹不同點,需要的朋友可以參考一下文章的具體內(nèi)容2021-11-11
python使用正則表達式(Regular Expression)方法超詳細
這篇文章主要介紹了python使用正則表達式(Regular Expression)方法超詳細,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
Python 如何優(yōu)雅的將數(shù)字轉(zhuǎn)化為時間格式的方法
這篇文章主要介紹了Python 如何優(yōu)雅的將數(shù)字轉(zhuǎn)化為時間格式的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09

