SQLite3 数据库全文搜索_第1页
SQLite3 数据库全文搜索_第2页
SQLite3 数据库全文搜索_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQLite3数据库全文搜索对于应用软件开发人员来说,要解决这个问题有许多的方案可以选择。如,利用MySQL和PostgreSQL或者Sphinx和Lucene这样的独立软件进行本地执行。然而,这些要么用起来棘手,要么就过度了。幸运的是,Google为SQLite贡献了一些资源以实现帮助。在版本3.3.8中第一次实现全文检索。此版本提供的功能可以创建一个依赖于外部延伸的虚拟表:在这里,全文搜索运算法则可用于任何虚拟表内的文本列。在\t"/database/201006/_blank"PHP

5.3.0中,对应的支持只被默认的PDO和SQLite3激活。较早版本的PHP可以使用PECL的SQLite3扩展库。下载并安装SQLite最新版本#wget/sqlite-amalgamation-3.6.22.tar.gz

#tar-zxvfsqlite-amalgamation-3.6.22.tar.gz

#cdsqlite-3.6.22/

#CFLAGS="-DSQLITE_ENABLE_FTS3=1"./configure

#make

#makeinstall完成查看版本#sqlite3--version创建一个搜索索引通常情况如下:把文本分解成记号。转换为小写字母。确定根词。建立索引。在默认情况下,SQLite提供了两个基本的分词器,Simple和Porter。它们可以控制字的分开方式。Simple根据空格和标点符号将文本分解成不同的记号。Porter是专为英文使用而设计,它可以将大量的文字扩展化解为基础形式。例如,condolidate,consolidated,和consolidating这一类词语都会被转变成consolid。捕鱼游戏遗憾的是,SQLite目前还没有取消停用词。所以常用词,例如,the,of和to仍位于索引内。这会极大地扩充索引的范畴并减缓搜索速度。最简单的解决办法是,在按下确认检索之前手动除去停用词。035棋牌下面,向您展示一些代码,教你如何创建自己的第一个全文索引。SQLite之所以做到这些,是因为它通过使用FTS3扩展建立一个虚拟表。只有文本列位于这个虚拟表以内时,才可以被搜索,并且最后一列用来识别使用的分词器类型。CREATE

VIRTUAL

TABLE

example

USING

FTS3(title

TEXT,

TOKENIZE

SIMPLE)创建表后,您可以使用SELECT,INSERT,UPDATE和DELETE语句查询此表。此处要附加说明的是:没有进一步的索引可以建立在表格上,所以简单的查询将导致对全表的扫描。一旦你键入一些数据,你就可以试试。

本文中其余的例子,我会使用出自英文版维基百科的所有标题。

我的\t"/database/201006/_blank"数据库有

5,453,838

行,相比较于没有索引时的

146MB,若使用全文索引,其大小是

233MB。检索搜索索引由匹配操作完成。查询可以包含多个方面,在这种情况下,只有文字行包含所有条件时才返回。还有支持“OR”的查询,但该查询排除了条件,精确的词组匹配以及前缀检索。SELECT

rowid,

title

FROM

example

WHERE

title

MATCH

teabag

SELECT

rowid,

title

FROM

example

WHERE

title

MATCH

teaORbag

SELECT

rowid,

title

FROM

example

WHERE

title

MATCH

tea-bag

SELECT

rowid,

title

FROM

example

WHERE

title

MATCH

"teabag"

SELECT

rowid,

title

FROM

example

WHERE

title

MATCH

tea*请注意:OR区分大小写,并且在一次查询中只允许一个MATCH操作。创建片段为了向匹配的搜索结果提供语境,可以使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论