全文检索概述
文本检索缺乏信息系统所要求的必要属性:
没有语义支持,即使是英语。
由于要识别派生词并不是那么容易,因此正则表达式也不能满足要求。如,satisfies和satisfy,当使用正则表达式寻找satisfy时,并不会查询到包含satisfies的文档。用户可以使用OR搜索多种派生形式,但过程非常繁琐。并且有些词会有上千的派生词,因此容易出错。
使用全文索引可以对文档进行预处理,并且可以使后续的搜索更快速。预处理过程包括:
将token转换为词素。
词典能够对token如何标准化做到细粒度控制。使用合适的词典,可以定义不被索引的停用词。
数据类型tsvector用于存储预处理文档,tsquery用于存储查询条件,详细请参见文本搜索类型。为这些数据类型提供的函数和操作符请参见。其中最重要的是匹配运算符@@,将在基本文本匹配中介绍。