使用 SQL 标量搜索函数的简单示例

在 DB2 Net Search Extender 示例中使用下列步骤:

  1. 创建数据库
  2. 启用数据库以进行文本搜索
  3. 创建表
  4. 创建全文本索引
  5. 装入样本数据
  6. 使文本索引同步
  7. 搜索文本索引

可以在操作系统的命令行上使用现有数据库发出样本命令。对于下列示例,数据库名称为 sample

创建数据库
可以使用以下命令在 DB2 中创建数据库:
db2 "create database sample"
启用数据库以进行文本搜索
可以象在操作系统的命令行上发出 DB2 命令那样发出 DB2 Net Search Extender 命令。例如,使用以下命令来启动“Net Search Extender 实例服务”:
db2text "START"
使用以下命令来准备数据库,使它与 DB2 Net Search Extender 配合使用:
db2text "ENABLE DATABASE FOR TEXT CONNECT TO sample"
对于每个数据库只需执行一次此步骤。
创建表
db2 "CREATE TABLE books (isbn VARCHAR(18) not null PRIMARY KEY,
      author VARCHAR(30), story LONG VARCHAR, year INTEGER)"
此 DB2 命令将创建一个称为 books 的表。它包含 author 列、story 列、isbn number 列和出版书籍的 year 列。
创建全文本索引
db2text "CREATE INDEX db2ext.myTextIndex FOR TEXT ON books (story)
        CONNECT TO sample"
此命令将为 story 列创建全文本索引。该文本索引的名称为 db2ext.myTextIndex
装入样本数据
db2 "INSERT INTO books VALUES ('0-13-086755-1','John', 'A man was
     running down the street.',2001)"
db2 "INSERT INTO books VALUES ('0-13-086755-2','Mike', 'The cat hunts
     some mice.', 2000)"
db2 "INSERT INTO books VALUES ('0-13-086755-3','Peter', 'Some men
     were standing beside the table.',1999)"
这些命令将把这些书籍的 isbn作者情节出版年份装入表中。
使文本索引同步
要使用 sample 表中的数据来更新文本索引,使用以下命令:
db2text "UPDATE INDEX db2ext.myTextIndex FOR TEXT CONNECT TO sample"
搜索文本索引
要搜索文本索引,使用以下 CONTAINS 标量搜索函数:
db2 "SELECT author, story FROM books WHERE CONTAINS
    (story, '\"cat\"') = 1 AND YEAR >= 2000"
注意

根据正在使用的操作系统 shell 的不同,在将文本搜索短语引起来的双引号前面可能需要添加不同的转义字符。以上示例将 "\" 用作转义字符。

此查询将搜索 2000 年或 2000 年以后关于单词 cat 的所有书籍。查询返回以下结果表:

AUTHOR    STORY
Mike   The cat hunts some mice.

受支持的其它函数包括 SCORENUMBEROFMATCHESSCORE 将返回一个指示符,指示搜索自变量描述找到的文档的仔细程度。NUMBEROFMATCHES 将返回在获得的文档中找到的查询词条匹配项的数量。