快速业务通道

用Google Gears增强您的Web应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
型都是 Text 的。

表中隐式包含了一 个跟表名相同的字段名,该列会在全文检索的时候用到。由于该列的存在,当你 用 Insert 语句插入新记录的时候有必要把你要更新的字段列举出来,同样,用 Select 语句检索的时候也要列举出你期望得到哪些字段的值,如清单 9 所示。 如果只是用 Select * from movie 检索 , SQLite 将会抛出异常。

清单 9. 操作支持全文检索的表

 // 插入几条数据到表 movie   var sql = "insert into movie (name,director,stars)  values (?, ?, ?)";  db.execute(sql, [''国产凌凌漆'', ''李力持'',  ''周星驰 谷德昭 李力持'']);  db.execute(sql, [''功夫'', ''周星驰 '', ''周星驰 元华'']);  db.execute(sql, [''The Dark Knight'',  ''Christopher Nolan'', ''Heath Ledger'']);  // 更新数据   var sql = ''update movie set stars = ? where name=?'';   db.execute(sql, [''Heath Ledger,Christian Bale'',''The Dark  Knight'']);  db.execute(sql, [''周星驰 元华 冯小刚'',''功夫''])   // 删除表格   db.execute(''drop table if exists  movie'');  // 检索数据  db.execute(''select  name,director,stars from movie order by name'');

用Google Gears增强您的Web应用程序(9)

时间:2011-08-27 IBM 傅飞 古力

为了 能够全文检索上面创建的表,你需要用 “< 表名 | 字段名 > match < 查询字符串 >” 作为检索条件。如果用表名,实际上是用表中隐 含的跟表名同名的字段名,这将会检索表中所有类型为 Text 的字段;如果用字 段名,这只在指定的字段上进行检索,这种情况并不是全文检索。我们这里用表 名作为例子,假设表 movie 中已经有了如表 1 所示的记录,注意 Stars 字段中 的人名是用空格隔开的,空格是 fts2 的分词符, fts2 全文检索的时候是按词 来索引的,如果一个字段值没有包含一个空格,该字段值将被视为一个词。

表 1. 表 movie 的所有记录

Name Director Stars
国产凌凌漆 李力持 周星驰 谷德昭 李力持
功夫 周 星驰 周星驰 元华 冯小刚
叶问 叶伟信 甄子丹 任达华
非诚勿扰 冯小刚 葛优 范伟
The Dark Knight Christopher Nolan Heath Ledger
Forrest Gump Robert Zemeckis Tom Hanks

我们现在用清单 10 所示的全文检索语句来检 索 movie 表,其中查询字符串是“周星驰”。

清单 10. 全文检索的 Select 语句

 var sql = ''select  name,director,stars from movie where movie match ?'';  var  rs = db.execute(sql,[''周星驰'']);

我们将得到如表 2 所示的 结果,可以看出,表 movie 中任何一个字段,只要包含“周星驰”, SQLite 都会将该记录返回给结果集。

表 2. 检索任意字段中包含'' 周星驰''的记录

Name Director Stars
国产凌凌漆 李力持 周星驰 谷德昭 李 力持
功夫 周星驰 周星驰 元华 冯小刚

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号