Django项目中使用干草堆全文检索框架时改变分词方式

  

<强>在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  

Django项目中使用干草堆全文检索框架时改变分词方式