带有全文搜索的sqlite在查询空间时找不到结果

Ham*_*ner 1 sqlite full-text-search

我正在玩那种使用sqlite3来存储姓名和电子邮件地址的abook.sqlite表使用全文搜索,由以下内容创建:

CREATE VIRTUAL TABLE AddressBook USING fts4(Name, Address);
Run Code Online (Sandbox Code Playgroud)

我的名字是"Hamish","Hamish D"和"Hamish Downer".查询

select * from addressbook where addressbook match 'hamish';
Run Code Online (Sandbox Code Playgroud)

找到他们所有.然而

select * from addressbook where addressbook match 'hamish d';
Run Code Online (Sandbox Code Playgroud)

查找具有确切名称"Hamish D" 的条目,但未找到名称为"Hamish Downer"的条目.我可以得到我期望的:

select * from addressbook where name like 'hamish d%';
Run Code Online (Sandbox Code Playgroud)

但我想使用匹配版本来匹配两列.知道这里发生了什么吗?或者如何让比赛按我的意愿工作?

CL.*_*CL. 5

阅读文档.

查询

... addressbook match 'hamish d'
Run Code Online (Sandbox Code Playgroud)

发现拥有这个两个词的记录hamishd.您可能希望搜索该短语hamish d,您可以使用该短语

... addressbook match '"hamish d"'
Run Code Online (Sandbox Code Playgroud)

要搜索前缀,请使用*:

... addressbook match '"hamish d*"'
Run Code Online (Sandbox Code Playgroud)