国产探花免费观看_亚洲丰满少妇自慰呻吟_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模板

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 琼中| 翼城县| 鸡东县| 大丰市| 民乐县| 扎鲁特旗| 汕尾市| 凌云县| 武穴市| 浏阳市| 伊金霍洛旗| 根河市| 鄂托克前旗| 治县。| 永顺县| 花莲县| 巴彦县| 勃利县| 台安县| 瑞丽市| 商南县| 昌都县| 普洱| 卢氏县| 汶上县| 七台河市| 宁陕县| 襄汾县| 南汇区| 荥阳市| 平乐县| 延庆县| 兰考县| 黄梅县| 淮阳县| 大英县| 交口县| 大足县| 抚远县| 新化县| 隆昌县|