问题标签 [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 投票
0 回答
33 浏览

sqlite - 全文搜索雪球算法如何解释未指定语言的单词

我用 sqlite 建立了一个完整的 ext 搜索索引,当我扫描包含几种语言的文档时,我不明白内部发生了什么。

例如,我用俄语描述了一个我正在学习的编程主题,并在描述代码块中添加了显然是英语的编程语言语法语句和注释。

让我们考虑一下示例document.txt

如您所见, document.txt包含两种语言。

我使用雪球标记器(它重用标准sowball 库)来索引明确指定的已完成文档CREATE TABLE documents USING FTS5(text, tokenize='snowball russian');,并且它可以毫无问题地处理它。所以这里有一点为什么?文档包含英文单词,后来索引包含英文词干俄文词干,我可以搜索командаcommenting成功。事情是这样运作的吗?

0 投票
1 回答
110 浏览

sqlite - Sqllite FTS5:使用 Trigram Tokenizer 进行子字符串匹配

我正在考虑使用 Trigram Tokenizer 来支持 FTS 中的子字符串匹配。

参考:https ://sqlite.org/fts5.html#the_experimental_trigram_tokenizer

我创建了一个虚拟表和数据,如下所示:

但是,当我使用具有非字母数字字符(如反斜杠 (\))的搜索文本进行选择查询时,它会抛出错误。

错误:

当我尝试使用 MATCH 运算符时也会出现同样的问题

有没有办法逃脱这样的角色?请帮忙!

0 投票
1 回答
45 浏览

sqlite - SQLite FTS5 MATCH 查询中的一元 NOT

SQLite FTS5 文档说支持搜索查询SELECT ... WHERE MATCH '<query1> NOT <query2>',但看起来不支持一元运算NOT符。

例如,如果我想搜索所有不匹配的内容,我不能使用. 我将不得不使用,这是完全不同的事情(FTS5 模块永远不会看到运算符,因为它在引号之外)。只有引号内的文本是搜索查询。<query>MATCH 'NOT <query>'NOT MATCH '<query>'NOT

我需要找到一种在搜索查询NOT中使用一元运算符的方法。我不能在外面使用它,因为我只能控制搜索查询文本,而不是 SQL 语句的其余部分。

我想到的一种可能的方法是找到一个匹配任何内容的搜索查询,然后执行MATCH '<match_anything> NOT <query>'. 但是,我发现无法匹配搜索查询中的所有内容。

你能想出一种方法来让搜索查询中的一元运算符的行为NOT吗?

0 投票
0 回答
29 浏览

sqlite - Sqlite如何执行以-something结尾的单词的搜索

所以我fts5在sqlite中使用扩展。我想得到以 . 结尾的行png

我尝试了以下,

但这似乎不起作用。

0 投票
1 回答
144 浏览

sqlite - 如何在 Peewee 和 SQLite 的 FTS5 中使用 trigram tokenizer/similarity 选项?

这个问题涉及如何将 FTS5 的 trigram tokenizer 与 Peewee 一起使用。

  1. SQLite的 官方 FTS5 文档引用了对 trigram 标记化/相似性的支持

  2. 我试过用 Peewee 建立一个基于 FTS 的课程。我更改了使用 trigram 标记器的选项:

  3. 当我尝试使用这些选项创建表时,此错误会翻转:

  4. 但是,如果我更改标记器选项以使用其他东西(例如“搬运工”),则不会引发错误。

如何将 trigram tokenizer 与 Peewee 一起使用?

0 投票
1 回答
84 浏览

sqlite - SQLite FTS5 Match 什么也不返回

我有一个 SQLite3 表:

我在其中插入任何内容:

然后我创建一个 FTS5 虚拟表:

所以我检查虚拟表中的数据:

截屏

一切似乎都很好......现在我尝试使用MATCH来查找文章:

...我没有得到任何结果。显然我展示的这个数据库只是一个例子,实际数据库也会发生同样的事情。我在不同的计算机(和不同的客户端)上尝试过,我还检查了 FTS5 是否已启用并在其中编译,PRAGMA compile_options并且ENABLE_FTS5是否存在,这意味着它已启用。FTS3 和 4 也会发生同样的情况。

那么我错过了什么?SQLite 版本是 3.36.0。

0 投票
2 回答
105 浏览

django - 升级 Wagtail 后如何解决 fts5 错误

我已使用 Django 3.1.13 将 Wagtail 安装升级到 2.15.1

当我运行manage.py migrate时出现错误

django.db.utils.OperationalError:没有这样的模块:fts5

我已搜索但找不到任何解决此问题的方法

有人可以帮忙吗?

这是发生错误时在django/db/backends/sqlite3/base.py中运行的代码

它失败了

查询的最后 3 个值是

失败发生在最后一个

0 投票
1 回答
44 浏览

sql - 从内容表填充虚拟 SQLite FTS5(全文搜索)表

我已经按照https://kimsereylam.com/sqlite/2020/03/06/full-text-search-with-sqlite.html设置SQLite 的虚拟表扩展 FTS5以在外部内容表上进行全文搜索。虽然博客展示了如何设置触发器以保持虚拟 FTS 表随数据更新:

我无法以类似的方式从所有以前的数据中填充 FTS 表。我将继续使用博客中的示例:

但是,sqlite (3.37.2) 失败并显示row value misused.

请说明id、和是如何相关的content_rowid,以及如何修改查询以正确更新 FTS 表。rowidnew.id