sqlmap注入靶场(SQLite3 数据库全文搜索 SQL Server 红黑联盟)
收藏
我要投稿 [字体:小
大]对于应用软件开发人员来说 ,要解决这个问题有许多的方案可以选择 。如 ,利用 MySQL 和 PostgreSQL 或者 Sphinx 和 Lucene 这样的独立软件进行本地执行 。然而,这些要么用起来棘手 ,要么就过度了。
幸运的是 ,Google 为 SQLite 贡献了一些资源以实现帮助 。在版本 3.3.8 中第一次实现全文检索 。此版本提供的功能可以创建一个依赖于外部延伸的虚拟表:在这里 ,全文搜索运算法则可用于任何虚拟表内的文本列 。在PHP 5.3.0中 ,对应的支持只被默认的 PDO 和 SQLite3 激活 。较早版本的PHP可以使用 PECL 的 SQLite3 扩展库 。
下载并安装 SQLite 最新版本
# tar -zxvf sqlite-amalgamation-3.6.22.tar.gz
# cd sqlite-3.6.22/
# CFLAGS="-DSQLITE_ENABLE_FTS3=1" ./configure
# make
# make install
完成
查看版本
创建一个搜索索引通常情况如下:
把文本分解成记号 。 转换为小写字母 。 确定根词 。 建立索引 。在默认情况下 ,SQLite 提供了两个基本的分词器 ,Simple 和 Porter。它们可以控制字的分开方式 。Simple 根据空格和标点符号将文本分解成不同的记号 。Porter是专为英文使用而设计 ,它可以将大量的文字扩展化解为基础形式。例如 ,condolidate ,consolidated,和 consolidating 这一类词语都会被转变成consolid 。
遗憾的是 ,SQLite目前还没有取消停用词 。所以常用词 ,例如,the,of和to仍位于索引内。这会极大地扩充索引的范畴并减缓搜索速度 。最简单的解决办法是 ,在按下确认检索之前手动除去停用词 。
下面 ,向您展示一些代码,教你如何创建自己的第一个全文索引 。 SQLite之所以做到这些 ,是因为它通过使用FTS3扩展建立一个虚拟表 。只有文本列位于这个虚拟表以内时 ,才可以被搜索 ,并且最后一列用来识别使用的分词器类型 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!