zoukankan      html  css  js  c++  java
  • 2015第42周六Pgsql全文索引

    全文搜索通常也就是文本搜索,它可以提供满足查询的识别自然语言的能力,并且任意性地通过相关性查询进行排序。搜索最常见的类型就是找到所有包含给定的查询术语的记录,并且以相似性的查询顺序返回它们。

    对于普通检索如~、~*、like和ilike操作的劣势: 

    1.对语言支持较弱,比如不能识别单词的复数形式,比如检索friend时不能检索出friends或者friendly。 

    2.没有有效的分类和排序手段,检索出的结果排序功能不好。 

    3.缺少索引支持,查询速度慢,特别是两头加了两个%时根本就不走索引。 

     PostgreSQL在8.3.x版本后开始支持全文检索。执行步骤,主要分三步走: 
    1.将文档分词(parsing documents into tokens) 
    2.转换分词规则(converting tokens into lexemes),如去掉复数后缀s/es,以及加入stop词,使之不会在分词中出现,如常用的'的' 
    3.按一定顺序查询的优化方式存储(storing preprocessed documents optimized for searching) tsvector存储,使用tsquery查询 

    在pgsql中,文档通常是一个数据库表中一行的文本字段,或者是这些字段的可能组合(级联),可能存储在多个表中或者动态的获得。也就是说,一个文档可以由索引的不同部分部分构成,它不一定非要作为一个整体存储。

    中文检索的例子: http://my.oschina.net/Kenyon/blog/82305

    其它:http://my.oschina.net/Kenyon/blog/80904

    http://www.54chen.com/_linux_/postgresql-bamboo-lucene-part2.html

  • 相关阅读:
    Java——方法的重载
    JS数据类型之String类型
    常用的正则表达式
    关于前端面试遇到的问题值类型和引用类型,1rem等于多少像素
    JS数据类型之Number类型
    常用前端面试题链接
    Wpf 父子容器的关系 ^
    心情 ^
    sharepoint_wf 启动窗口设计,支配给自由域用户 ^
    WPF 单个触发器、多个触发器、多条件触发器 ^
  • 原文地址:https://www.cnblogs.com/doit8791/p/4887017.html
Copyright © 2011-2022 走看看