使用Android中sqlite表的全文检索
2013-07-01 17:42
302 查看
在Android中,使用的是sqlite,而如果需要在其中做全文检索的话,也是可以的。因为sqlite中支持fts表(full-text search的简称),详细的可以参考: http://www.sqlite.org/fts3.html#section_1 ,这里介绍了FTS3和FTS4的区别,
这里的FTS3其实是sqlite的一个扩展模块,是虚拟表模块,允许用户去实现全文检索。下面是一个简单的例子:
可以看到,使用上面的语法即创建了一个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*'
即支持通配符了
这里的FTS3其实是sqlite的一个扩展模块,是虚拟表模块,允许用户去实现全文检索。下面是一个简单的例子:
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*'
即支持通配符了
相关文章推荐
- 使用Android中sqlite表的全文检索
- Android中SQLite3的使用杂记
- android:使用SQLite的Blob储存.mp3档案
- Android SQlite数据库的使用(一)-一学就会android数据库
- 一看就会Android之SQLite中事务的使用
- Android之SQLite的使用
- android 数据库 SQLite3 的基本使用超详细
- Android开发中使用SQLite 数据库
- 使用Lucene.Net实现全文检索
- android SQLiteOpenHelper使用示例
- mysql Sphinx在windows下安装使用[支持中文全文检索]
- Android在SQLite中使用事务
- Oracle9i中全文检索的创建与使用
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- SQLite中使用全文搜索FTS
- 全文检索使用
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- (Linux)sphinx检索Coreseek中文全文检索引擎安装和使用
- android SQLiteOpenHelper和ContentProvider的结合使用
- Android开发之Sqlite的使用