sqlite3基本操作(sqlite3怎么创建数据表)

技术SQLite3如何实现数据库全文搜索这篇文章主要为大家展示了“SQLite3如何实现数据库全文搜索”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQLite3如何实现数据

本文主要向大家展示“SQLite3如何实现数据库全文搜索”,简单易懂,条理清晰,希望能帮大家解开疑惑。让边肖带领你学习《SQLite3如何实现数据库全文搜索》一文。

对于应用软件开发人员来说,解决这个问题有很多选择。例如,独立软件如MySQL和PostgreSQL或Sphinx和Lucene用于本地执行。然而,这些要么难以使用,要么过多。

幸运的是,谷歌向SQLite贡献了一些资源来提供帮助。全文检索最早在3.3.8版中实现。这个版本提供的函数可以创建一个依赖于外部扩展的虚拟表:这里,全文搜索算法可以用于任何虚拟表中的文本列。在PHP 5.3.0中,相应的支持仅由默认的PDO和SQLite3激活。PHP的早期版本可以使用PECL的SQLite3扩展库。

并安装最新版本的SQLite

# http://www.sqlite.org/sqlite-amalgamation-3.6.22.tar.gz

# tar-zxvf sqlite-amalgamation-3.6.22.tar.gz

# cd sqlite-3.6.22/

# CFLAGS='-DSQLITE _ ENABLE _ FTS 3=1 '。/configure

#制作

#进行安装

完成

查看版本

# sqlite3 -版本

创建搜索索引的一般情况如下:

把课文分解成标记。

转换成小写字母。

确定词根。

建立一个索引。

默认情况下,SQLite提供两个基本参与者,Simple和Porter。他们可以控制单词的分离方式。根据简单空格和标点符号将文本分解成不同的符号。Porter是为英语使用而设计的,它可以将大量的文本扩展转换为基本形式。例如,像condolidate、consolidated和consolidated这样的词都将转换为consolid。

遗憾的是,SQLite还没有取消停止词。所以常用的词,比如的、的和的,仍然在索引中。这将大大扩大索引的范围,降低搜索速度。最简单的解决方案是在按下确认搜索之前手动删除停止词。

下面,我向您展示一些代码,教您如何创建第一个全文索引。SQLite之所以这样做,是因为它通过使用FTS3扩展构建了一个虚拟表。只有当文本列在这个虚拟表中时,它才能被搜索,最后一列用于标识所使用的参与者的类型。

创建虚拟表示例

使用FTS3(标题文本,简单标记)

创建表后,可以使用SELECT、INSERT、UPDATE和DELETE语句进行查询。这里需要补充的是,不能在表上建立进一步的索引,所以一个简单的查询将导致整个表的扫描。

一旦你输入一些数据,你可以试试。

对于本文中的其余例子,我将使用英文维基百科中的所有标题。

我有一条5,453,838 线。与没有索引的146MB相比,如果使用全文索引,其大小是233MB.

检索

通过匹配操作完成搜索。查询可以包含多个方面,在这种情况下,只有当文本行包含所有条件时,才会返回查询。还有“OR”的查询,但是这个查询不包括条件、精确短语匹配和前缀检索。

从标题匹配茶包的示例中选择标题

从标题匹配茶或包的示例中选择行、标题

从标题匹配茶包的示例中选择标题行

从标题与“茶包”匹配的示例中选择行标题

从标题匹配茶的示例中选择标题*

注意:OR区分大小写,查询中只允许一个MATCH操作。

创建片段

为了提供匹配搜索结果的上下文,可以使用snippet() 函数。此功能将突出显示搜索结果中任何文本列的关键字。

选择标题、片段(示例)

来自示例

哪里跨度大

以上就是《如何在SQLite3中实现全文数据库搜索》一文的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151383.html

(0)

相关推荐

  • 我国的少数民族,我国特有的少数民族有哪些

    技术我国的少数民族,我国特有的少数民族有哪些蒙古族那达慕大会;锡伯族抹黑节;彝族的“火把节”;瑶族达努节;藏族望果节。1、瑶族达努节达努节是马山、都安、巴马、平果、隆安、大化等地自称“布努”的瑶族传统节日。又名二九节、祖

    生活 2021年11月1日
  • jointJS怎么用

    技术jointJS怎么用这篇文章主要为大家展示了“jointJS怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jointJS怎么用”这篇文章吧。最近由于项目需要,开始接

    攻略 2021年11月16日
  • 玛咖是什么东西有什么作用,玛卡万万不能乱吃,为什么

    技术玛咖是什么东西有什么作用,玛卡万万不能乱吃,为什么玛卡万万不能乱吃玛咖是什么东西有什么作用,为什么?玛卡不能乱吃,是因为长期大量吃玛卡具有明显的副作用及损害,如上火、甲状腺肿大、过敏、皮肤痤疮等。玛卡也叫玛咖,是一种

    生活 2021年10月27日
  • redis有哪些内存淘汰策略如何配置(redis中线程安全的方法)

    技术Redis中线程IO模型是什么这篇文章将为大家详细讲解有关Redis中线程IO模型是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis是一个单线程的应用程序,NodeJs

    攻略 2021年12月21日
  • 闯红灯12123多久能显示,闯红灯多久能查到具体车辆

    技术闯红灯12123多久能显示,闯红灯多久能查到具体车辆随着互联网飞速发展,车辆在违章之后,既可到车管所进行违章处理,也可在网上进行处理闯红灯12123多久能显示。那么2018年闯红灯后几天后才能知晓呢?怎么查询呢?接下

    生活 2021年10月31日
  • 彻底解决mysql中的乱码问题(怎么解决mysql不能识别中文的问题)

    技术如何解决mac中mysql乱码问题这篇文章主要为大家展示了“如何解决mac中mysql乱码问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决mac中mysql乱码

    攻略 2021年12月25日