问题标签 [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.
sqlite - Sqlite fts4 区分大小写
对 Sqlite3 来说非常新,我终于有一个 FTS4 搜索工作,但我很难为如何编写区分大小写的代码。我有一个tblMain
包含两个 BLOB_TEXT 列的数据库,advOne
并且advTwo
feeling fine
这可以快速
运行并返回记录
a Fine was levied
我需要找到仅区分大小写的记录Fine
。
我怎么写这条线?
如果这有什么不同,我正在使用 Lazarus 和 Ubuntu。
r - 我可以在 R` 中为 sqlite 使用 FTS 扩展吗?
Sqlite 带有对全文特殊表的支持。是否可以在 R 中使用这些功能,例如从RSQLite
?
php - Python/PHP SQLite 在 FTS4/FTS5 中查询波兰语字母 Ł/ł
由于 SQLite FTS4/FTS5 tokenizer=unicode61 给了我们:
为什么不 l=ł=L=Ł ??? 这不是一个错误吗?
如何在没有波兰字符 ł/Ł 的键盘上查询 SQLite?例如查询名称 Żabczyński 像“zabczynski” - 得到结果,但对于名称 Włast 像“wlast” - 0 结果(应该像数百......)我在 PHP 中有我的漫游,但它不适用于带有 l 的单词并在其中使用 ł,例如 'opłacalny'。
任何想法?您不能在 sqlite 中设置编码,例如 utf8_general_ci、utf8_polish_ci、utf8_unicode_ci... 或者是的,有可能吗?
有没有办法在 Python 中解决它?平台上没有 ICU(共享服务器)。
android - Android Room 数据库查询不返回 id 列
问题是查询返回除“id”之外的所有列
我使用 fts4,在文档中它说:
启用 FTS 的表始终使用 INTEGER 类型的主键和列名“rowid”。如果您的 FTS 表支持的实体定义了主键,则它必须使用该类型和列名。
这是我的实体类:
这是我的简单查询:
我收到警告:
app.aarsham.projeno.data.Model.Project 有一些字段 [rowid] 不由查询返回。如果不应该从结果中读取它们,则可以使用 @Ignore 注释对其进行标记。您可以通过使用 @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH) 注释方法来抑制此警告。查询返回的列:名称、开始日期、结束日期、描述、图标路径、预算。app.aarsham.projeno.data.Model.Project 中的字段:rowid、name、start_date、end_date、description、icon_path、budget。
和一个错误:
查询返回的列在 app.aarsham.projeno.data.Model.Project 中没有字段 [id],即使它们被注释为非 null 或原始的。查询返回的列:[name,start_date,end_date,description,icon_path,budget]
有人可以帮忙吗?
sqlite - SQLite FTS 表是否需要手动填充?
SQLite FTS 的文档暗示应该使用 INSERT、UPDATE、DELETE 等填充和更新 FTS 表。
这就是我正在做的 - 添加行,删除它们等,但最近我注意到,一旦我创建 FTS 表,它就会使用源中的数据自动填充。我这样创建它:
如果我在“notes”表中添加一行,它也会自动添加到 notes_fts。我想这就是虚拟表。
但是,为什么会有关于填充 FTS 表的章节呢?甚至有什么意义,例如,如果我删除一行,如果它仍在源表中,它将回来。
对此有任何想法吗?FTS 真的需要填充吗?
sqlite - 带有 FTS4 SQLite3 搜索的进度条
Mint-19.1,拉撒路 1.8.4
我正在使用 SQlite3 和 FTS4 文本搜索,对于 3.5GB 的数据文件,它可以在大约 15 到 20 秒内正常检索结果。但是,这个过程占用了一切,我什至无法在选取框模式下激活进度条。它开始移动彩色块然后停止,直到返回搜索结果。
是否有回调或我可以使用的东西让我向用户显示该事物正在忙于搜索?TLabel.Caption 中的滚动数字也可以。
我发现 MTProcs.pas wiki 听起来可能有帮助,但链接都返回 404 错误。
而且,在有人将其称为“重复”之前,我已经检查了声称的重复,但没有任何东西可以远程应用。:)
谢谢
sqlite - 如何使用外部 sqlite 内容表创建虚拟表 FTS?
我想创建一个包含真实内容的 SQLite 虚拟表。
我有一个小样本可以证明我的问题。我已经红了官方教程,但是在这段代码中找不到任何错误。一些用户使用一个rebuild
选项,但它对我不起作用。
如果我运行它,我会得到:
有人知道我做错了吗?
sqlite - React Native SQLite 全文搜索
我正在尝试在 React Native 中使用 SQLite 实现全文搜索。我正在使用react-native-sqlite-storage
. Android 不支持 FTS5。但是,我已经能够创建一个虚拟表并使用 FTS4 运行查询。问题是对搜索结果进行排名。FTS3 和 FTS4 为您提供的唯一函数是matchinfo()
,它返回一个blob
. 为了能够对结果进行排名,您需要创建一个用户定义的函数,如本页底部所述。
问题是如何在使用时创建该功能react-native-sqlite-storage
?这甚至可能吗?如果没有,还有其他解决方案吗?没有排名的全文搜索是没有用的。
java - 在 Android 上使用 SQLite 触发器返回错误
我是 SQLite 的新手,我正在尝试创建一个应用程序,用户可以在其中创建任务并向它们附加提醒。我正在使用SQLite
数据库来保存这些项目。一切都很完美,现在我想实现一个全文搜索功能,我已经阅读SQLite
了使用FTS4 VIRTUAL TABLE
比普通搜索更好的方法的文档。
- 所以为了保持虚拟表同步,我不得不使用触发器。但是调用后出现错误
execSQL("//*Trigger code*//")
这是我的触发器(按照文档中提到的顺序使用它们):
这是我的数据库 onCreate() 方法:
执行触发器 onDeleteItem() 方法的示例:
返回错误:
sql - SQLite UPDATE 语句在 AFTER INSERT 触发器(Android,Room)中不起作用
我的 SQL:
这不起作用:我希望此触发器起作用。
这里VerseTranslation
的模型verse_id
和VerseSearch
表都有对应于每个 verse_id 的数据。
但是当我在 AFTER INSERT 触发器中使用 INSERT 语句时,它正在工作,并且 AFTER UPDATE 触发器中的 UPDATE 语句也可以工作:例如:
在插入中添加了 +10000,因为 VerseSearch 表中已经存在具有每个对应 verse_id(6236) 的数据,因此它不会对主键 (verse_id) 进行唯一的约束错误。
问题是相反的 ACTION(INSERT 触发器中的 UPDATE 语句)不起作用;
模型结构:
谢谢。