问题标签 [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.
sqlite - 如何获取虚拟表的名称?
示例架构:
选择表名:
结果:
如何仅获取虚拟表的结果,没有*_data
, *_idx
,和?*_content
*_docsize
*_config
python - 正确安装支持 FTS5 的 sqlite3
我正在开发一个 Python 工具,它使用带有FTS5(全文搜索)的 sqlite3 虚拟表。我想知道如何从压缩包(或任何其他方式)正确安装我的工具工作所需的要求,以便我可以打包它们以实现便携性。
目前,我设法安装了sqlite 的最新版本 tarball。但是,当我执行时:
我得到3.11.0
,而sqlite3 --version
返回:3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2alt1
系统版本 sqlite3 3.22 确实支持 FTS5,正如我所做的那样pragma compile_options;
:
但是,python 版本,使用这个脚本会返回:
因此,我的问题是:
- 有没有什么办法可以为我的应用程序制作一个 linux 便携包,在 python 和 linux 系统中都支持 sqlite3 FTS5?
- 有没有办法将 python 模块 sqlite3 链接到特定的 sqlite3 路径?
我在 Ubuntu 16.04 LTS 中尝试了所有这些,但我想在 CentOS 7 上也能正常工作。
非常感谢您提前。
有关我所做的 tarball 安装的更多详细信息:
sqlite - Sqlite FTS5 初始令牌查询语法?
我已经在 sqlite 中设置了带有虚拟表的 FTS5(全文搜索)。MATCH 查询正常工作,但它总是在初始令牌查询中引发语法错误。
例如:SELECT * FROM fts_article WHERE fts_article MATCH '^suo'
抛出
我已经尝试了文档中列出的所有语法变体,得到了同样的错误。
(在生产代码中我将使用绑定参数,我也尝试过这种方式。)
更新:一些额外的上下文:我正在使用从 SQLCipher 烘焙到 libsqlcipher-ios.a 中的 sqlite。我正在通过 FMDB 运行我的 sql。我试过直接调用 sqlite api。在这种情况下,错误似乎消失了,但我没有看到我期望的结果。还在调查...
python - 用python3在sqlite3中进行fts搜索的变量替换
我正在使用 sqlite3 的 fts5 扩展在 python3 中搜索我的 SQLite 数据库。我知道如何将 fts5 与硬编码查询一起使用:
但我不知道如何将变量替换到此搜索中。我已经尝试了?
通常可用于将变量替换为 SQLite 的 python 中的 SELECT 语句的语法,但这似乎不起作用。
我需要的是允许我将变量中保存的查询替换为 SELECT 语句的代码,如上面的 fts 搜索。
与其他问题的区别:这个问题不同,因为我使用的是 fts5 扩展而不是LIKE
子句;LIKE 子句完全不同。问号语法似乎不适用于 fts ,因为它适用于 LIKE 子句。
java - SQL 语句在 SQLiteManager 中有效,但在我的程序中无效
我正在尝试从现有表中获取相关值并将它们放入虚拟表中,然后我可以搜索并获取我想要的条目。
除了通过程序将条目实际加载到此虚拟表中之外,我或多或少都在工作。我已经在 sqliteManager 中尽我所能测试了这些语句,它们似乎没有问题,但是当我尝试通过程序执行它们时,没有任何反应,并stmt.execute()
返回 false。
有问题的代码:
然后由searchProduct()
下面的函数调用:
现在,我知道我的程序至少连接到我的数据库,因为“DELETE FROM VirtualProductTable”语句工作正常(我已经通过手动输入相关表中的项目对其进行了测试)。
我可能认为可能导致此问题的唯一另一件事是我stmt.setString(...)
的 s 无法正常工作,但我不知道如何正确测试这些并查看实际采用的值。
我应该说清楚,我没有收到来自 eclipse 的任何实际错误消息,所以我认为我在语法上是合理的。
c# - C# SQLite FTS5 表和触发器创建
我正在使用 sqlite fts5 创建一个虚拟表,并且出现以下错误消息: SQL Logic error no such module: FTS5. 下面是我的代码: 在 VS 2017 中使用包管理器 我已经下载了 SQLite 和 SQLite FTS5。
sqlite - 为什么 sqlite fts5 Unicode61 Tokenizer 不支持 CJK(中文日文韩文)?
我原以为Unicode61 Tokenizer可以支持CJK——中文日文韩文 我验证我的 sqlite 支持 fts5
但令我惊讶的是,它根本找不到任何 CJK 词。这是为什么 ?
- - - - - - - 更新 - - - - -
我花了很多时间来构建一个 icu 版本。我在这里分享了我的经验https://stackoverflow.com/a/52866566/301513
据我所知,使用 icu 版本是支持 CJK 的唯一方法,而 fts5 不支持 icu 分词器。
我把我的问题留在这里,以防其他人对这个问题有新的想法。
python-3.x - 在 sqlite fts5 查询中使用 Match 但需要更多地控制排名?
我有一个使用 fts5 创建的虚拟表:
以下列
一个示例查询是:
结果我得到
- 文件SOP
- 里面顶部
- 在顶部
不过,对于这种特殊情况,我实际上希望“inTOP”出现在“insideTOP”之前,因为标签是完美匹配的。
什么是能够以我想要的方式按摩这些结果的好技术?
非常感谢
马库斯
sqlite - Sqlite FTS 最小令牌大小
如何告诉 Sqlite FTS5 仅索引超过一定长度的令牌?
该'prefix=n'
选项很接近,但提供前缀索引。
这些'tokenize'
选项似乎没有提供这个。
sqlite - 有没有办法查看在 sqlite 中将参数应用于查询的结果?
我在 Go 中使用 sqlite3,出于调试目的,我希望看到将参数应用于查询的结果,即使用 ? 替换为实际参数。这可能吗?
目前,我有如下代码,打印的 FTS5 查询看起来不错:
它不会返回错误,但也找不到应该找到的内容,而且我不知道如何进一步调试: