问题标签 [fts5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1212 浏览

sqlite - 在 SQLite 中为全文搜索索引创建 SQL 触发器

我正在尝试为常规表创建触发器,然后更新 SQLite 中的全文索引,但我遇到了一些错误,我不确定我哪里出错了。

我正在制作的应用程序是一个书签应用程序,我保存书签数据的数据库是使用以下 SQL 语句创建的:

然后使用以下命令创建全文搜索索引:

因此,当通过插入或删除更新“页面”表时,我想更新 fts 索引。

我插入的触发器:

我删除的触发器:

这是我正在使用的 sql insert 语句的示例:

和删除语句:

但是,SQLITE_MISMATCH: datatype mismatch] errno: 20, code: 'SQLITE_MISMATCH'插入和删除触发器都出现错误,我猜这似乎表明错误的数据进入了错误的列,但我不确定为什么。我已经浏览了此处文档的外部内容表部分中的触发器部分,并且我已经按照列出的内容进行操作,所以我不确定我哪里出错了。

任何帮助,将不胜感激。

注意:我使用的是 fts5 版本的 SQLite 全文搜索:https ://www.sqlite.org/fts5.html

0 投票
2 回答
4215 浏览

python - python和sqlite3,检查我是否可以使用fts5扩展?

我最近发现FTS5扩展已经发布。
检查我的应用程序是否可以在用户系统上使用它的最佳方法是什么?
只是 python3 版本检查,或 sqlite3.sqlite_version 根据发布页面检查??或者是其他东西?

0 投票
2 回答
4455 浏览

.net - SQLite:没有这样的模块:System.Data.SQLite.dll 1.0.101.0 出现 fts5 错误

我正在使用 System.Data.SQLite.dll 1.0.101.0,执行命令“CREATE VIRTUAL TABLE tbl_fts USING fts5 (fld1, fld2)”时出现此错误。

错误:没有这样的模块:fts5

在此页面中我们可以看到:1.0.99.0 - 2015 年 12 月 9 日

•添加对原生 json1 和 fts5 扩展的实验性支持

https://system.data.sqlite.org/index.html/doc/trunk/www/news.wiki

那么问题是什么,我该如何启用 fts5,我应该重建 System.Data.SQLite.dll 吗?我怎样才能做到这一点?

谢谢..

0 投票
1 回答
1018 浏览

sqlite - 如何查找 FTS5 和 MATCH 之间的记录?

如何使用 FTS5 表在 SQLite3 数据库中搜索(价格)范围?

这是一个高度简化的示例表:

以下命令返回 Cucumber 的预期两条记录 3 和 7:

如何搜索价格范围为 20 到 40 的 Cucumbers(包括上例中的记录 6)?如果我尝试

或者

我根本没有得到任何结果(或错误消息)。不能在一个查询中使用 MATCH 和 BETWEEN 吗?


另外:为什么命令

只返回一条记录(id:3)而不是 3、6 和 7,假设也会找到“Cucumber”中的 C,而不仅仅是“with C”中的 C?

0 投票
3 回答
1533 浏览

ios - Sqlite FTS5 标点符号在选择查询中不起作用

我正在使用sqlite进行全文搜索,下面是我正在使用的一些选择查询示例。

前任:

  1. SELECT * FROM table WHERE table MATCH '列:父亲的' ORDER BY rank;

  2. SELECT * FROM table WHERE table MATCH 'column: example: ' ORDER BY rank;

  3. SELECT * FROM table WHERE table MATCH 'column: month& ' ORDER BY rank;

由于我在搜索文本中使用' : &字符,因此这些查询给了我错误。我也尝试在标点符号之前使用转义字符(\-反斜杠)。

使用 MATCH 运算符在 fts5 中搜索标点符号(、. / " ' - & 等)的任何解决方案?

这些字符与匹配运算符一起使用_, €, £, ¥

谢谢

0 投票
0 回答
181 浏览

ios - FTS5 不能将运算符与匹配运算符一起使用

我正在使用 sqlite 进行全文搜索,下面是我正在使用的一些选择查询示例。

前任:

  1. SELECT * FROM table WHERE table MATCH 'column:father* OR for*' ORDER BY rank;

  2. SELECT * FROM table WHERE table MATCH 'column:exam* AND yo*' ORDER BY rank;

这些查询无法正常工作。结果给我数据库中的所有行。使用星号时,我不能将 AND/OR 与 Match 运算符一起使用。有什么解决办法吗?

谢谢。

0 投票
0 回答
287 浏览

sqlite - 排名时文档的内容是否取决于 SQLite FTS5?

以下是两个例句。

(1) 在一年内,微软将 MS-DOS 授权给了 70 多家其他公司。它被设计成可以在任何 8086 系列计算机上运行的操作系统。

(2) 在一年内,微软将 MS-DOS 许可给 70 多家其他公司。它被设计成可以在任何 8086 系列计算机上运行的操作系统。每台计算机都有自己独特的硬件和自己的 MS-DOS 版本。

当搜索Microsoft作为输入搜索文本时,(1) 的排名高于 (2),因为 (1) 的内容较低。

当搜索许可证作为输入搜索文本时,最佳匹配在 (2) 中。由于 (1) 的内容比 (2) 小,将为 (1) 输出更高的排名。

有没有什么办法不看内容就可以得到精确匹配的排名?有什么解决办法吗?

0 投票
3 回答
1871 浏览

python-3.x - 如何启用 FTS5 搜索带有“.”、“_”和“0-9”的字符串?

我有一个表,它使用字母数字、数字、点、下划线和方括号 [] 保存 300K 字符串记录。

我使用对 sqlite3 的 FTS5 扩展来启用对该表的快速搜索。这就是我创建 FTS 虚拟表的方式:

我在循环中使用以下代码添加〜300K记录:

样本记录:

使用以下查询:

与以下search_phrase产生以下:

  1. ext : 没有什么
  2. extbootrecord : 所有记录
  3. extbootrecrd. : 所有记录
  4. extbootrecord.fie : 没有什么
  5. extbootrecord.field : 所有记录
  6. extbootrecord.field_db1: 只有a.extbootrecord.field_db1记录,我希望 field_db1, field_db10, field_db11... 被返回

似乎我缺少一些要使用的 FTS 配置._以及0-9作为令牌一部分的有效字符。

我尝试tokenize = \"unicode61 tokenchars '_.'\"在创建语句中配置 FTS 标记器,但没有运气。

我错过了什么?

0 投票
1 回答
991 浏览

sqlite - 使用标点符号时出现 sqlite3_fts5 错误

我有一个包含单词“我的车在哪里?”的问题字符串变量。

当我尝试对此运行选择时,它会崩溃。

fts5:“?”附近的语法错误

如果我从问题变量中删除问号,那么它就可以工作。但是我怎样才能更正该声明以使其不会崩溃?

0 投票
2 回答
533 浏览

sqlite - 如何从 2 个不同的列进行 FTS 匹配

我正在尝试搜索 2 个单独的列keywordkeyword2进行匹配。这可以用 SQLite FTS 完成吗?

我试过这个说法,但没有奏效: