术语
Analysis
把文本分成单个词语并且索引的过程,先把文本分成词组,然后选择性的过滤(大小写之类的)Whoosh包含几种不同的analyzer
Corpus
你正在索引的文本集
Documents
你希望能有搜索到的单个词的内容,"documents"可能是有文件的意思,但是事实上数据源可以时任意的——管理系统上面的文章,博客系统上面的博客,一个大文件的文件块,SQL查询的一行数据,个人邮件或者任何别的东西。当你从Whoosh得到搜索结果的时候,结果是一个documents的列表,无论“document”在你的搜索引擎里面意味着什么
Fields
每一个document包含着一个Field集,典型的Filed可能是“title”,“content”,“url”,“keyword”,“status”,“data”等等。Fields可以被索引(也就是可以被搜索到)并且和document存储,存储field可以在搜索结果中使用,比如你可能希望存储title这个field以便都所结果可以显示它
Forward index
一个陈列着在document中出现的每一个document和words的表,Whoosh存储的term vertors就是一种forward index
Indexing
检测在文本集中的documents并且把他们添加到反向索引的过程
Postings
反向索引列出的出现在corpus中出现的每一个单词,对于每个单词来说,和这个单词一起出现的documents以及伴随这的选择性的信息(例如出现的次数)。这写出现在列表中的东西,包含着document的数量以及人和的额外信息叫做postings。在Whoosh里面存储在postings里面的每个field的信息是可定制的
Resverse index
基本上就是列出了每个corpus里面的word,然后列出了每个与这个word相关的document的表,它可以更复杂(可以列出每个word出现在document中出现的次数以及每次出现的位置)但是这仅仅是他基本的工作方式
Schema
Whoosh在你开始indexing之前需要你列举索引的每一个field,Schema把你的field的名字和他们的元数据联系起来,比如postings的格式以及他们是否被存储
Term vector
在一个特定的document里面某个特定field的forward index,你可以指明在Schema中某个域必须存储term vector。