一. 核心对象
1.1 index
对象和Schema
对象
index
对象是一个全局索引,在创建index
对象前首先要声明index
对象的一些属性,这些属性通过Schema
对象进行包装。Schema
对象有很多Fields
,每个Field
都是index
对象的一个信息块,即需要被我们检索的内容。- 创建
Schema
对象时需要用关键字来映射Field name
和Field 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
对象<