例如,如果您想在一本讨论某个话题的书中引用所有页面,您首先需要指向索引,索引按字母顺序列出了所有主题,然后指向一个或多个特定的页码。 下面是一个sqlite上建立索引的例子
CREATE INDEX index_name ON table_name
sqlite中支持fts表(full-text search的简称),fts3其实是sqlite的一个扩展模块,是虚拟表模块,允许用户去实现全文检索。下面是一个简单的例子:
Java代码
CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT)
可以看到,使用上面的语法即创建了一个fts3的表了,而检索时,根据手册上说的:
SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux' /* 0.03 seconds */
SELECT count(*) FROM enrondata2 WHERE content LIKE '%linux%'/* 22.5 seconds */
看到没?这里是使用match了,而不是传统的like,而且效率很高了。
还支持如下的语法:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: company'
即列名:该列要搜索的关键词
还可以这样:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: comp*'
即支持通配符了
索引主要是针对表中的一列或者是多列建立的升序或者是降序的排列。全文索引是索引的升级,他是针对整个文件的字符匹配。而且建立和全文索引以后就可以对创建了该索引的表进行全文检索.
虚拟表格是一个对象, 必须具有一个打开的, 可以SQLite 数据库连接从一个SQL 语句, 该虚拟table 对象看上去像其它的表或视图但在幕后, 从失败的查询在虚拟表的虚拟表格调用回调方法的对象而不是读取和写入的数据库文件使用虚拟表的机制允许应用程序发布来自SQL 语句可访问接口, 就像它们是表SQL语句可以在概念集群队列虚拟表它们都可以执行一个真实表, 但下列情况除外:
无法上创建触发器虚拟表中
不能在虚拟创建额外的索引的表(虚拟表可以有索引, 但必须构建到虚拟表的实现不能添加带索引的单独使用CREATE INDEX 语句)
一个无法运行ALTER TABLE ...ADD COLUMN 针对虚拟表格命令.
支持全文搜索的,如下:在Android中,使用的是sqlite,而如果需要在其中做全文检索的话,也是可以的。因为sqlite中支持fts表(full-text search的简称),详细的可以参考:
http://www.sqlite.org/fts3.html#section_1 ,这里介绍了FTS3和FTS4的区别,
这里的FTS3其实是sqlite的一个扩展模块,是虚拟表模块,允许用户去实现全文检索。下面是一个简单的例子:
[java] view plain copy
CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT)
可以看到,使用上面的语法即创建了一个fts3的表了,而检索时,根据手册上说的:
SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux' /* 0.03 seconds */
SELECT count(*) FROM enrondata2 WHERE content LIKE '%linux%'/* 22.5 seconds */
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)