SQLite FTS中的匹配
我在SQLite中使用FTS,我有以下数据: abcSQLite FTS中的匹配,sqlite,full-text-search,Sqlite,Full Text Search,我在SQLite中使用FTS,我有以下数据: abc def 转到 去 jdk sqlite 放手 继续 前往 不去 我使用查询:从列与“go*”匹配的表中选择*。结果: 转到 去 放手 继续 前往 不去 但是我想要结果go-to,go-on,如何查询?正如解释的那样,go*是一个前缀搜索,查找以go开头的任何单词 你想搜索两个单词,所以理论上,你必须进行短语搜索。 但是,“go*”不起作用,因为前缀搜索需要实际的前缀 您最好搜索单词go,并在代码中过滤掉所有返回的记录,其中go只出现在末尾。使
def
转到
去
jdk
sqlite
放手
继续
前往
不去 我使用查询:
从列与“go*”匹配的表中选择*
。结果:
转到去
放手
继续
前往
不去 但是我想要结果
go-to,go-on
,如何查询?正如解释的那样,go*
是一个前缀搜索,查找以go
开头的任何单词
你想搜索两个单词,所以理论上,你必须进行短语搜索。
但是,“go*”
不起作用,因为前缀搜索需要实际的前缀
您最好搜索单词
go
,并在代码中过滤掉所有返回的记录,其中go
只出现在末尾。使用“^go”可能会有所帮助,因为它只会给您以go开头的条目(受sqlite版本3.7.9支持)
这将产生以下结果:
去吧,去吧
select * from table where columns MATCH '^go*'
这将产生以下结果:
去,去,去
select * from table where columns MATCH 'go*'
匹配包含任何单个单词且以开始的所有短语
转到
转到
我们开始了
匹配所有包含任何单个单词且相等的短语
转到
我们开始了
匹配所有以单个单词开头的短语,其中相等
转到
进入
有人回答说,“^go”,但它不起作用,神奇的是,“^go”
select * from table where columns MATCH 'go*'
select * from table where columns MATCH 'go'
select * from table where columns MATCH '"^go"'