问题标签 [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.

0 投票
0 回答
105 浏览

python - 如何在 python 中启用 sqlite3 FTS5 扩展(在 Windows 上)?

我正在尝试在 python 中使用 sqlite3 中的 FTS5,但我看到扩展未启用。在网上,我只能找到有关如何在 linux 或 mac 上启用此功能的教程。有没有一种简单的方法可以在 Windows 上启用 FTS5?

(我最近才开始学习编码,对从提示符运行命令知之甚少,因此非常感谢初学者友好的解释:))

非常感谢!

0 投票
0 回答
80 浏览

c# - 在启用 FTS5 的已发布 VSTO 应用程序中,System.Data.SQLite 查询执行失败

在我的 VSTO 应用程序中,我使用 sqlitefts5模块。在开发机器上,应用程序工作正常,但是当我发布它并尝试执行 SELECT 查询时 - 没有发生任何事情(甚至没有抛出异常!)!

这是我的代码:

无论是否安装了 NugetSystem.Data.SQLite.Core.FTS5包,它都无法在客户端机器上运行。

我使用“任何 CPU”配置和System.Data.SQLitenuget 包。开发和客户端计算机都使用 Office 64 位。

是否有任何解决方案可以使FTS5模块在客户端机器上工作?

0 投票
2 回答
1436 浏览

python-3.x - 如何使用带有 Python 3.7 的 sqlite3 python 模块的 FTS5 扩展?

如何在Python 3.7 中使用带有 python 模块的FTS5扩展?sqlite3

我尝试在 Python 中运行以下代码python testFTS5.py

这导致错误消息:

我尝试过sqlite.load_extension('FTS5')sqlite.load_extension('ENABLE_FTS5')但不出所料地产生了相同的错误消息(未找到相应的文件名)。我也尝试过运行代码,LD_LIBRARY_PATH=/usr/local/bin python testFTS5.py但我得到了相同的错误消息。

sqlite3通过在终端中运行以下代码来检查位置:

我列出了已安装的sqlite3扩展:

这似乎表明 FTS5 在我的/usr/local/bin/sqlite3版本中可用。

但是,当我跑步时

它输出:

该列表中没有ENABLE_FTS5

我尝试使用 Python 3.7.6(默认,2019 年 12 月 19 日,23:49:42)和 Python 3.6.7(默认,2018 年 10 月 25 日,09:16:13)。

0 投票
1 回答
436 浏览

python-3.x - 如何在 Ubuntu 16.04 上将 FTS5 扩展与带有 Python 3.7 的 sqlite3 python 模块一起使用?

0 投票
1 回答
269 浏览

sqlite - SQLite:fts5 和排名,按日期排序

我们在应用程序中使用 SQLite 和 FTS5。它运行良好并且速度非常快。但是,当我们的虚拟 fts 表变大时,我们遇到了问题。我们需要按日期按时间倒序对搜索结果进行排序,而不是按默认排名,并且限制为 100。在英语中,我们需要与搜索字符串匹配的 100 个最近的行。

上述查询的结果如下所示:

您可以看到,所有条目的排名都是相同的,并且默认排序(在排名之后)是按日期。有没有办法使用 fts5 按反向日期排序并完全忽略排名?

我在下面的工作......但是一旦表格变大,就会对性能产生可怕的影响。

上述查询的结果如下所示:

这正是我们正在寻找的......但我们需要一种方法来实现它而不使用 time_stamp 上的排序

0 投票
1 回答
62 浏览

php - SQLite FTS5 通过 PHP/PDO - 如何在过滤列名时绑定值?

在 FTS5 MATCH 子句中,用作过滤器的列名以冒号结尾声明,如:

(根据https://sqlite.org/fts5.html#fts5_column_filters

当我尝试将“关键字”声明为绑定值时,例如:

我收到以下错误:

因为列名后面的冒号。

我使用替代语法(?占位符、bindValue() 等)得到了同样的错误。

有谁知道这里的解决方法?还是我错过了一些明显的东西?非常感谢。

0 投票
1 回答
47 浏览

sqlite - SQLite 自定义函数作为匹配字符串

我创建了一个 SQLite 函数,它接受一个字符串并返回另一个字符串,然后我可以将返回值用作匹配字符串。代码在这里

除了单引号外,它工作得很好。在这种情况下,它无法匹配任何行,但如果我直接使用返回的字符串,它可以匹配。有人知道这里有什么问题吗?

完整的例子在这里

0 投票
1 回答
408 浏览

swift - 如何在 SQLite FTS5 中突出显示前缀匹配

我有一个 SQLite FTS5 虚拟表,并试图在我的前缀查询结果中突出显示文本。我知道 highlight() 和 snippet() 辅助功能,但是它们似乎并不完全支持我正在尝试做的事情。如果我的数据如下所示:

我想使用前缀匹配进行查询,例如

高亮和片段功能(假设<b>...</b>标签)将返回

但我只想在通配符之前突出显示匹配的前缀的确切部分:

使用现有的 FTS5 辅助功能似乎没有任何方法可以做到这一点。我意识到 FTS5 提供了一个 API,以便您可以创建自己的辅助功能。我也可以在应用程序代码中实现该解决方案(我正在使用 Swift),尽管我怀疑这个问题可能会导致很多尝试在应用程序代码中实现的问题(例如,如何处理词干提取)。在我麻烦实施自己的解决方案之前,有谁知道我正在尝试做的事情是否真的可以使用现有的突出显示和/或片段功能?如果是这样,你能解释一下怎么做吗?

此外,我观察到其他几个现有的应用程序(例如 Contacts+)提供了这种功能,所以我知道这是有可能的,并且我也想知道如果有人知道他们是如何做到的。

0 投票
0 回答
26 浏览

sqlite - 当我运行查询时,SQLite 全文搜索给出 0 行

我有一个sections具有以下属性的现有表名,并且该表当前具有静态数据

我想在我的表中使用全文搜索sections,所以我写了这样的查询

它创建了预期的下表。

如果我运行查询 SELECT * from fts_sections; ,我会从sections表中获取所有行。但是如果我运行以下查询

我得到0 Rows虽然The我的桌子在场fts_sections。从一些博客中,我发现我必须为我的表创建触发器sections并在表中插入数据fts_sections。但是我的数据库是静态的。如何在这个预填充的表格上启用全文搜索?

来自自动生成的表的数据是

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
150 浏览

python - “OperationalError: no such module: fts4” in Python3.8 using Anaconda3 Spyder 4.2.5

我正在尝试运行模糊匹配器。但是遇到问题

OperationalError:没有这样的模块:fts4

我使用了其他帖子中推荐的扩展

这似乎不能解决问题。我的结果是

编译器=msvc-1916
ENABLE_COLUMN_METADATA
ENABLE_FTS5
ENABLE_GEOPOLY
ENABLE_JSON1
ENABLE_RTREE
MAX_VARIABLE_NUMBER=250000
THREADSAFE=1

系统路径

在 [16]: sys.path
Out[16]:
['C:\Users\anaconda3\python38.zip',
'C:\Users\anaconda3\DLLs',
'C:\Users\anaconda3\lib',
' C:\Users\anaconda3'、
''、
'C:\Users\anaconda3\lib\site-packages'、
'C:\Users\anaconda3\lib\site-packages\locket-0.2.1-py3.8。鸡蛋'、
'C:\Users\anaconda3\lib\site-packages\win32'、
'C:\Users\anaconda3\lib\site-packages\win32\lib'、
'C:\Users\anaconda3\lib\site -packages\Pythonwin'、
'C:\Users\anaconda3\lib\site-packages\IPython\extensions'、
'C:\Users\.ipython'、
'd:\1. 研究\python\apsw-3.33.0-r1']

非常感谢任何解决此问题的帮助。谢谢你。