问题标签 [fts3]
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 - 如何快速将表从一个数据库复制到另一个数据库
我有一个数据库,一个表和另一个数据库。我需要将这个表从第一个数据库(带有简单表)复制到第二个。(在第二个数据库中,它应该是 fts3 表)。因此,我可以打开两个数据库,在第二个数据库中创建新的 fts3,然后通过 select -> insert 查询将所有数据从第一个数据库复制到第二个数据库。但是有没有其他方法可以更快更好地做到这一点?
database - 如何将现有的 sqlite 数据库表转换为 fts3 之一?
我有正常的 sqlite 数据库,想使用 fts3。如http://www.sqlite.org/fts3.html教程中所述,必须创建 FTS 表才能使用此搜索功能。
有没有办法将现有表转换为 FTS 表?
android - android sqlite fts3 如果不存在则创建表
我看到我们不能在创建虚拟表语句中使用“如果不存在”
如果我删除IF NOT EXISTS
它,它只能工作一次。有没有其他选择。
android - SQLite:大表中的高效子字符串搜索
我正在开发一个必须在一个大表中执行子字符串搜索的 Android 应用程序(大约 500'000 个带有街道和位置名称的条目,所以每个条目只有几个词)。
请注意,只有 20% 的条目在“名称”列中包含字符串。
执行以下查询几乎需要 2 分钟:
我现在尝试使用 FTS3 来加快查询速度。那是相当成功的,查询时间减少到 1 分钟(令人惊讶的是数据库文件大小只增加了 5%,这对我的目的也很好)。
问题是,FTS3 似乎不支持子字符串搜索,即如果我想在“foo bar”和“foobar”中找到“bar”,我只会得到“foo bar”,尽管我需要这两个结果。
所以实际上我有两个问题:
是否可以进一步加快查询速度?我的目标是查询 30 秒,但我不知道这是否现实......
如何使用 FTS3 进行真正的子字符串搜索?
mysql - 最快的 SQL 全文搜索
我目前正在使用 SQLite FTS4 引擎,它的性能非常好。但是有人知道与 MySQL 的全文搜索(或任何其他 SQL 数据库)的任何基准/比较吗?
PS 我不是在寻找任何 Lucene/NoSQL 替代品。
iphone - 以(后缀)结尾并包含在 SQLite FTS 中使用 MATCH 进行的字符串搜索
我在我的 iOS 应用程序中使用 SQLite FTS 扩展。它表现良好,但问题是它只匹配字符串前缀(或以关键字搜索开头)。
IE
这有效:
但以下两个没有:
是否有任何解决方法或任何方式使用 FTS 构建类似于查询的LIKE '%searchterm%'
查询。
编辑:
正如 Retterdesdialogs 所指出的,以相反的顺序存储整个文本并对反向字符串运行前缀搜索是解决以/后缀搜索问题结尾的可能解决方案,这是我最初的问题,但它不适用于“包含”搜索。我已经相应地更新了这个问题。
sqlite - match 子句返回不正确的结果
我正在尝试在 sqlite 中使用 FTS3 并执行未返回所需结果的查询。这是查询:
此查询返回 col1 也包含我不想要的文本“应变”。我想要这个查询的确切副本:
任何建议/意见/帮助?
sqlite - SQLite全文虚拟表正常可用?
即使在阅读了很多关于 SQLite 全文索引的内容之后,出现了一个我在任何地方都没有看到答案的问题:
我已经有一个要使用全文索引搜索的表。我只会创建一个额外的虚拟表USING FTS3
,或者USING FTS4
然后将INSERT
我的数据放入其中。
那么这是否总共使用了双存储?我可以像使用普通表一样使用这样的虚拟表,从而防止两次存储数据吗?
(我在 Android 上使用 SQLite,但这个问题可能适用于任何 SQLite 兼容平台上的使用。)
android - 如何使用 ORMLite 为 FTS3 创建虚拟表
我找不到将FTS3与 ormlite 一起使用的方法,因为我在创建虚拟表时遇到了问题。我需要在原生 sqlite 中运行这样的东西:
但是 ORMLite 调用下面的方法来创建一个简单的表
TableUtils.createTable(ConnectionSource connectionSource, Class<T> dataClass);
在这个问题的答案中:FTS3 在 ORMLite 中搜索?,写的是使用 ORMLite 的原始查询接口,不幸的是,我找不到用它创建表的方法。
如何将 FTS3 与 ormlite 一起使用?