我有一个 SQLite FTS5 虚拟表,并试图在我的前缀查询结果中突出显示文本。我知道 highlight() 和 snippet() 辅助功能,但是它们似乎并不完全支持我正在尝试做的事情。如果我的数据如下所示:
fts.my_data
-----------
John
Mike
Bill
Jane
我想使用前缀匹配进行查询,例如
select * from fts where fts match 'j*';
高亮和片段功能(假设<b>...</b>
标签)将返回
<b>John</b>
<b>Jane</b>
但我只想在通配符之前突出显示匹配的前缀的确切部分:
<b>J</b>ohn
<b>J</b>ane
使用现有的 FTS5 辅助功能似乎没有任何方法可以做到这一点。我意识到 FTS5 提供了一个 API,以便您可以创建自己的辅助功能。我也可以在应用程序代码中实现该解决方案(我正在使用 Swift),尽管我怀疑这个问题可能会导致很多尝试在应用程序代码中实现的问题(例如,如何处理词干提取)。在我麻烦实施自己的解决方案之前,有谁知道我正在尝试做的事情是否真的可以使用现有的突出显示和/或片段功能?如果是这样,你能解释一下怎么做吗?
此外,我观察到其他几个现有的应用程序(例如 Contacts+)提供了这种功能,所以我知道这是有可能的,并且我也想知道如果有人知道他们是如何做到的。