VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

停用词

功能描述

词典用于定义停用词(stop words),即全文检索时不搜索哪些词。

停用词是很常见的词,几乎出现在每一个文档中,并且没有区分值。因此,在全文搜索的语境下可忽视它们。停用词处理逻辑和词典类型相关。例如,Ispell词典会先对标记进行规范化,然后再查看停用词表,而Snowball词典会最先检查输入标记是否为停用词。

示例

  • 每个英文文本包含像a和the的单词,因此没必要将它们存储在索引中。然而,停用词影响tsvector中的位置,同时位置也会影响相关度。

    SELECT to_tsvector('english','in the list of stop words'); 
    

    结果显示如下:

           to_tsvector
    ----------------------------
     'list':3 'stop':5 'word':6
    (1 row)
    

    位置1、2、4是停用词,所以不显示。为包含和不包含停用词的文档计算出的排序是完全不同的:

    • 包含停用词:

      SELECT ts_rank_cd (to_tsvector('english','in the list of stop words'), to_tsquery('list & stop')); 
      

      返回结果为:

      ts_rank_cd
      ------------
              .05
      (1 row)
      
    • 不包含停用词:

      SELECT ts_rank_cd (to_tsvector('english','list stop words'), to_tsquery('list & stop')); 
      

      返回结果为:

      ts_rank_cd
      ------------
              .1
      (1 row)