国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python django使用haystack:全文檢索的框架(實例講解)

2020-02-16 10:19:54
字體:
來源:轉載
供稿:網友

haystack:全文檢索的框架

whoosh:純Python編寫的全文搜索引擎

jieba:一款免費的中文分詞包

首先安裝這三個包

pip install django-haystack
pip install whoosh
pip install jieba

1.修改settings.py文件,安裝應用haystack,

2.在settings.py文件中配置搜索引擎

HAYSTACK_CONNECTIONS = { 'default': {  # 使用whoosh引擎  'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',  # 索引文件路徑  'PATH': os.path.join(BASE_DIR, 'whoosh_index'), }}# 當添加、修改、刪除數據時,自動生成索引HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

3. 在templates目錄下創建“search/indexes/blog/”目錄 采用blog應用名字下面創建一個文件blog_text.txt
#指定索引的屬性

{{ object.title }}
{{ object.text}}
{{ object.keywords }}

4.在需要搜索的應用下面創建search_indexes

from haystack import indexesfrom models import Post #指定對于某個類的某些數據建立索引class GoodsInfoIndex(indexes.SearchIndex, indexes.Indexable):  text = indexes.CharField(document=True, use_template=True) def get_model(self):   return Post #搜索的模型類 def index_queryset(self, using=None):    return self.get_model().objects.all()

5.

1. 修改haystack文件

2. 找到虛擬環境py_django下的haystack目錄 這個目錄根據自己使用的python環境不同,路徑也不一樣。

3. site-packages/haystack/backends/ 創建一個文件名為ChineseAnalyzer.py文件寫入下面代碼,用于中文分詞

import jiebafrom 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()

6.

1. 復制whoosh_backend.py文件,改為如下名稱

whoosh_cn_backend.py

在復制出來的文件中導入中文分詞模塊

from .ChineseAnalyzer import ChineseAnalyzer

2. 更改詞語分析類 改成中文

查找analyzer=StemmingAnalyzer()改為analyzer=ChineseAnalyzer()

7. 最后一步就是建初始化索引數據

python manage.py rebuild_index

8. 創建搜索模板 在templates/indexes/ 創建search.html模板

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长阳| 益阳市| 思南县| 清水河县| 伊宁县| 古浪县| 驻马店市| 阿瓦提县| 鄱阳县| 鄂尔多斯市| 开平市| 三穗县| 肇州县| 温州市| 休宁县| 从化市| 苏尼特右旗| 南澳县| 汽车| 乡城县| 尚志市| 边坝县| 萍乡市| 沙田区| 龙游县| 新兴县| 宝清县| 水城县| 繁昌县| 昌都县| 库尔勒市| 肥乡县| 清水河县| 海林市| 贡觉县| 咸丰县| 修文县| 河西区| 丰镇市| 揭西县| 津市市|