问题标签 [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.
android - 使用 FTS4 创建表给出错误
我找到了一个使用MATCH关键字的不错的查询,但它需要 fts4。所以,我正在尝试使用 fts4 创建一个表,如下所示,
但是,我得到以下异常,
我做错什么了吗?请给我建议,
提前致谢。
android - sqlite全文搜索中的突出显示/粗体文本
我想知道 SQLite FTS3 和 FTS4 是否支持点击突出显示?文档说片段功能可用于文本格式化。我实现了相同但它不返回格式化文本。我在未回答问题中的详细代码在这里
任何帮助将不胜感激。谢谢
sqlite - 用于短语查询的 Sqlite FTS4 令牌前缀
我正在尝试使用以下查询查询 Sqlite 数据库,其中考虑到 2 个字段,例如标题和作者:
SELECT * FROM books WHERE title MATCH 'Author:<author>* <title>*'
它在不包含空格(即单个单词)时起作用<author>
,<title>
但是当我尝试例如对于作者:“mark tw”时,它不会匹配任何行,因为有 2 个单词。
那么,是否可以对由多个单词组成的短语查询使用前缀?
sqlite - 如何为 SQLite FTS 查询转义字符串
我正在尝试使用不受信任的用户输入执行 SQLite FTS 查询。我不想让用户访问查询语法,即他们将无法执行匹配查询,例如foo OR bar AND cats
. 如果他们尝试使用该字符串进行查询,我希望将其解释为更像foo \OR bar \AND cats
.
SQLite 似乎没有为此内置任何东西,所以我可能最终会构建自己的转义函数,但这似乎很危险且容易出错。有没有首选的方法来做到这一点?
android - FTS4 SQLITE 中的外部内容
我有一个 VIEWview_for_search_unit
和一个 FTS4 表FTS_table_search_unit
。我使用以下命令将数据从view_for_search_unit
FTS 表中插入:
在我使用以下方法检查 FTS 表中的数据后:
它有 1000 条完美记录(我使用假数据)。但是,当我MATCH
在 FTS 中使用该功能时:
我检索了 1000 条记录,但结果中的所有列都是NULL
. 问题是什么?看不懂,因为里面有数据FTS_table_search_unit
。
sqlite - 没有这样的模块:使用 sqlite 的电晕中的 fts 错误
我正在尝试从电晕应用程序内部对 sqlite 数据库运行“匹配”查询。我使用 cl.exe 从源文件编译了 sqlite 数据库,编译时我包含了启用 fts 功能的标志。然后我使用fts3在数据库中创建了一个虚拟表(我也单独尝试了fts4)。我能够从 sqlite 命令行实用程序运行“匹配”查询并返回正确的结果。
但是,当我从我的电晕应用程序对同一个数据库文件尝试相同的查询时,我收到错误“没有这样的模块:fts3”(我在尝试使用 fts4 时得到“没有这样的模块:fts4”)。其他查询(不使用全文搜索)在电晕中工作正常。
谁能告诉我为什么在我的电晕应用程序中进行全文搜索时出现此错误?sqlite 文档暗示此错误意味着 sqlite 构建不包含 FTS 模块。但我认为我正确编译了它,因为我创建 FTS3 表的 SQL 语句成功(在电晕之外),并且全文查询也在电晕之外工作。
我需要在我的电晕构建设置中设置不同的东西吗?
我在 Windows 上使用电晕模拟器,但我也在我的设备上尝试过。
这是我设备上 adb logcat 的输出:
android - Android 中的 FTS4 查询错误
我使用以下方法在 PC 上创建了一个 fts4 表:
在 SQLite Studio 中,我查询了一条运行正常的语句:
当我提取数据库以在我的 Android 应用程序中使用时,相同的查询给出以下错误:
notindexed
我在这里读到
感谢您的帮助!
android - sqlite fts4 can not use offsets funtion when use group by
I have two table: table 1: fts virtual table
docid Long auto increase, content Text, (fts column)
table 2: meta data table
docid Long(foreigner key of table1 docid), username Text, timestamp Long
sql: select table1.docid content, username, MAX(timestamp) as time, offsets(table1) from table1, table2 where content Match "a" AND table1.docid = table2.docid group by username order by timestamp desc limit 3;
this sql will not execute, but i delete "group by username", it can execute. why?
java - 无法使用 fts4 访问 sqlite 表 - java.sqlite.SQLException:没有这样的表:?
java.sqlite.SQLException:没有这样的表:学生
当我尝试从 sqlite 数据库中的 fts4 表中显示 JTable 中的数据时,我收到此错误消息。我知道我的代码很好,因为它适用于普通的 sqlite 表。但我无法访问“使用 fts4 的虚拟表”。我可以访问我的数据库,但是这个带有 fts4 的虚拟表让我很头疼。我使用 Firefox 附加 SQLite 管理器通过以下查询创建 fts4 表:
使用 fts4 (id, first_name, last_name) 创建虚拟表学生;
我需要为此使用一些不同的驱动程序吗?我使用此代码连接到 sqlite 数据库:
android - 如何查询外部内容 FTS4 表但从原始内容表返回附加列
我正在SQLite 中创建一个FTS4 外部内容表,如下所示:
我正在使用外部内容表,因此我不需要存储col_text
in 的重复值fts_table
。我只是索引col_text
,因为col_a
并且col_b
不需要索引。
但是,当我进行这样的查询fts_table
时
我无权访问col_a
和访问col_b
内容表t2
。如何从单个 FTS 查询中返回所有这些列 ( col_a
, col_b
, )?col_text
更新
我尝试使用该notindexed=column_name
选项,如
这应该适用于某些人,但我在 Android 中使用它,并且notindexed
直到 SQLite 3.8 才支持该选项,Android 直到Android 版本 5.x才支持该选项。我需要支持android 4.x。我正在更新这个问题以包含 Android 标签。