gpt4 book ai didi

SQLite 虚拟表匹配转义字符

转载 作者:行者123 更新时间:2023-12-03 19:09:00 24 4
gpt4 key购买 nike

我正在开发一个应用程序,其中索引存储在 SQLite FTS3 虚拟表中。我们正在实现全文匹配,这意味着我们通过以下查询发送:

select * from blah where term match '<insert term here>'

一切都很好,直到我们要匹配的术语包含一个连字符,以防 SQLite 虚拟匹配语法将 bacon-and-eggs 解释为 bacon,而不是 and,not eggs。

有谁知道可以让 fts 表忽略连字符的转义符?我尝试添加一个 ESCAPE '\' 子句并在每个连字符前使用\,但匹配语句拒绝该语法。

谢谢。

最佳答案

有很多 FTS 认为“特殊”的字符串需要转义。最简单的方法是在要搜索的字符串周围添加双引号。

示例 1:假设您要搜索的字词是 bacon-and-eggs

select * from blah where term match '"bacon-and-eggs"'

这还将整个字符串视为一个短语,因此以不同顺序命中相同单词不会生成任何命中。为了解决这个问题,您可以分别引用每个单词。

示例 2:假设您要搜索的字词是 bacon and eggs

select * from blah where term match '"bacon" "and" "eggs"'

希望这对某人有帮助!

关于SQLite 虚拟表匹配转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com