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

  • 相关阅读:
    Vim插件列表
    比nerdtree更好的文件浏览器:vimfiler
    在不同的窗口之间跳转
    unite
    ARMv7 .n和.w指令宽度指示符后缀
    Mybatis之分表设计与分表插入
    thymeleaf之菜单树
    管理后台菜单查询
    Linux下Tomcat重新启动
    网页缓存清除
  • 原文地址:https://www.cnblogs.com/doit8791/p/4887017.html
Copyright © 2011-2022 走看看