Whoosh + jieba 中文检索

本文介绍了如何使用Whoosh库结合jieba进行中文检索。核心对象包括对象、对象和对象,其中用于全局索引,用于写入数据,用于搜索。在Whoosh中,可以通过设置analyzer为jieba分词器实现中文分词。
摘要由CSDN通过智能技术生成

本文参考简书:Whoosh + jieba 中文检索
Whoosh官方文档入口

一. 核心对象

1.1 index对象和Schema对象

  • index对象是一个全局索引,在创建index对象前首先要声明index对象的一些属性,这些属性通过Schema对象进行包装。Schema对象有很多Fields,每个Field都是index对象的一个信息块,即需要被我们检索的内容。
  • 创建Schema对象时需要用关键字来映射Field nameField type,如title=TEXT
  • 创建好Schema对象后,接着就是使用creat_in方法来创建Schema的索引
  • 接着可以用以下两种方法打开一个已创建的索引
    # 方法一 使用FileStorage对象
    from whoosh.filedb.filestore import FileStorage
    storage = FileStorage(idx_path)  #idx_path 为索引路径
    idx = storage.open_index(indexname=indexname, schema=schema)
    
    # 方法二 使用open_dir函数
    from whoosh.index import open_dir
    idx = open_dir(indexname=indexname)  #indexname 为索引名
    

1.2 IndexWriter对象

  • 一旦有了index对象,我们就需要在index里写入需要被检索的信息
  • IndexWriter对象就是用来提供一个add_document(**args)方法来在之前声明的各种Fields里写入数据
  • 注:不是每个字段都要传值
  • 如果需要异步处理可以创建异步的IndexWriter对象
    from whoosh.writing import AsyncWriter
    writer = AsyncWriter(index=index)
    
  • 如果需要Buffer进行处理可以创建BufferWriter对象
    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值