问题标签 [fts4]

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 回答
419 浏览

sqlite - 删除最初使用“未知标记器”创建的表?

我有一个 sqlite3 数据库。无法删除此数据库中的单个表,错误消息显示unknown tokenizer: mm

我直接使用DROP TABLE tablename;最新SQLiteSpy v1.9.11 中的命令以及 .NET 代码和官方 sqlite NuGet包 v 1.0.103 中的命令进行了尝试。

如何删除标记器未知的表?

0 投票
1 回答
297 浏览

sqlite - 仅 Sqlite FTS3/4 不搜索

如何从 SQLite FTS3 或 FTS4 表中选择除不需要的所有行?

没有按预期工作。

0 投票
1 回答
42 浏览

ios - 需要帮助实施全文搜索

我有一个运行了一段时间的 Note 应用程序,现在我正在实现全文搜索功能,我阅读了有关 sqlite fts3 和 fts4 模块的信息。

我想知道在为全文搜索创建虚拟表之后,我是否必须将所有数据从普通表复制到虚拟表?

0 投票
2 回答
995 浏览

sql - Sqlite 全文搜索关键字“匹配”未返回任何结果

我正在full text search努力sqlite使用fts4.

在我的数据库中,我有一个普通表Notes,它包含33 records.

fts4我使用这样的方法创建了一个虚拟表

我这样查询

和这个

但是没有一个查询有效,为什么?我得到空结果没有错误。

0 投票
1 回答
193 浏览

python - 如何在python中注册porter tokenizer

fts3 模块中的默认标记器“porter”是如何注册的。

注册用户定义的标记器的一种方法是fts.register_tokenizer(),但它的参数是什么?

由于 porter 是一个内置的标记器,它甚至需要注册吗?

0 投票
1 回答
277 浏览

android-sqlite - android上sqlite fts3中的“优化”命令使“匹配”不起作用

我在 android 中创建一个 fts4 表,我批量插入大量行,然后按照sqlite 文档中的建议进行优化

我在android中使用以下代码

现在,当我使用 match 查询 fts 表时,无论查询如何,我都会得到 0 结果:

将给出一个空光标

0 投票
0 回答
482 浏览

android - Android 上的全文搜索

我对 有一些误解FTS,如果有人能够帮助我,我将不胜感激。

目标:MATCH使用函数进行全文搜索。

问题:无法通过扩展ASCII字符进行搜索,例如:'#¿®£$等。

详细信息:有三个预定义的分词器simpleporterunicode61。但是所有这些标记器都将特殊符号识别为分隔符,因为文档说:

术语是符合条件的字符的连续序列,其中符合条件的字符都是字母数字字符和 Unicode 代码点值大于或等于 128 的所有字符。

可能的解决方案(坏的):有一种方法可以指定额外的符号,这些符号应该用作标记的分隔符或作为标记的一部分。

之后,我可以找到诸如:that's、、doll$r等等之类60%40的词,因为标记器不会按'$%符号拆分标记。

但这不适合我,因为ASCII表中有很多扩展符号,列出所有符号并不是一个好的解决方案。

主要问题:通过特殊符号进行搜索的最佳解决方案是什么。

非常感谢,如果需要,请随时询问更多详细信息。

0 投票
0 回答
511 浏览

sqlite - SQlite 全文搜索 MATCH 带有 OR 和 AND 的多列

我正在学习如何在 SQlite 中使用FTS4并尝试翻译如下内容:

它与普通表完美配合,类似于:

这不适用于转换为 VIRTUAL .. USING fts4 的同一张表...

使用“ : ”在特定列中搜索匹配是有效的,但我如何将它与 OR 和 AND 结合使用?

背景 - 我尝试使用灵活的查询,其中 q1 可以是两者之一:邮政编码或地名,q2 必须是地址。

编辑:

这就是我到目前为止(部分)工作的结果

(基于@CL的这篇文章)

这里的第一个问题是带空格的单词 - 如果我搜索类似

然后我有“格式错误的 MATCH 表达式”第二个问题是当我有空查询时,比如

然后我什么也得不到

0 投票
1 回答
872 浏览

android - FTS4上的SQLite Android Join操作

Table1是 虚拟表fts4TABLE2normal table

查询1 (工作)

查询 2(不工作)

来自 Query2 的错误

android.database.sqlite.SQLiteException:无法在请求的上下文中使用函数 MATCH(代码 1)

由此看来,FTS 表需要首先出现在 LEFT OUTER JOIN 上。为什么会这样?加入首先发生在应用 WHERE 子句之前。因此,如果它不适用于表类型不匹配,我假设它也不适用于 query1。任何人都请解释一下。内部发生了什么?此外,任何指向参考站点的链接都将不胜感激解释这一点。

0 投票
1 回答
427 浏览

sqlite - 损坏的数据库表不能 DROP

使用 SQLite3 和 Ubuntu 14.04-LTS。在为 FTS 搜索创建虚拟表时,我设法输入错误。现在我无法删除表格。这就是我想要的:

但是,我一定是按了“5”而不是“4”,现在我不能DROP上桌了。当我尝试时,我收到此错误:

刷新表 main.tFind 的架构时出错:没有此类模块 FTS5

我搜索并找到了有关终端 (CLI) 的 SQLite3 的信息,但我不知道如何使用其中的命令。

我该如何修复这个?我有数百行数据和十几个表,所以我不能只用相同的表创建一个新数据库。