zoukankan      html  css  js  c++  java
  • 使用SQL Server 2000 全文检索

    今天在研究SQL Server2000的全文检索功能。在网上找到的一些比较不错的资料:

    [SQLSERVER]SQL中的全文检索(转邹建) 
    实例演示在SQL中启用全文检索 
    使用SQL SERVER 2000的全文检索功能 
    SQL Server 2000 全文检索技术

    以上的文章中对Search的相关语法及参数说的不够详细,下面是详细的说明:

    SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。

    CONTAINS:
    CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。

    CONTAINS语句的语法格式为:

    CONTAINS({column | *}), <contains_search_condition>)

    其中,column是搜索列,使用“*”时说明对表中所有全文索引列进行搜索。
    Contains_search_condition 说明CONTAINS语句的搜索内容,其语法格式为:

    {<simple_term>|<prefix_term>|<proximity_term>|<generation_term>|<weighted_term>}[{{AND|AND NOT|OR}<contains_search_condition>}] [...n]

    下面就simple_term和prefix_term参数做简要说明:

    simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:

    {'word'|" phrase"}

    prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:

    {"word*" | "phrase*"}

    例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:

    select title, notes 
    from book 
    where contains(tilte, 'database'or contains(notes,'database'
    or contains(title,'computer'or contains(notes,'computer'

    FREETEXT

    FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。

    FREETEXT语句的语法格式为:FREETEXT({column | * },'freetext_string')

    其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。

    例如,下面语句使用FREETEXT语句搜索Book表中包含“工艺”和“机械”字符串的数据行,注意,SQL语名把字符串分成两个词搜索了:

    select * 
    from trade 
    where freetext(*'工艺 机械'

    全文搜索SQL Server提供的Search服务外,还有Microsoft Indexing Services 和 第三方的搜索组件。
    关于Index Service下面的文章值得一看:
    使用Microsoft Indexing Services开发网站全文检索配置说明 

  • 相关阅读:
    apue第16章笔记
    重构与重写
    架构方面的笔记
    多进程失败拉起的demo
    Elasticsearch match_phrase用法
    c++风格
    cocos2d-x 3.2 移植到android
    Mac 下配置 Cocos2d-x 3-x android 的环境
    解决最新版的ADT没有NDK选项的问题
    待飞日记(第六天和第七天)
  • 原文地址:https://www.cnblogs.com/baoposhou/p/599363.html
Copyright © 2011-2022 走看看