<$> p $ p $ ... addressbook match'hamish d'
查找记录那包含两个词 hamish
和 d
。您可能想要搜索 hamish d
这个短语,您可以使用
... addressbook match'hamish d'
要搜索前缀,请使用 *
:
... addressbook match'hamish d * '
I'm playing with notmuch-abook which uses sqlite3 to store names and email addresses. The sqlite table uses full text search, being created by:
CREATE VIRTUAL TABLE AddressBook USING fts4(Name, Address);
I have entries for myself with names "Hamish", "Hamish D" and "Hamish Downer". The query
select * from addressbook where addressbook match 'hamish';
Finds them all. However
select * from addressbook where addressbook match 'hamish d';
Finds only the entries with the exact name "Hamish D" but does not find the entries with name "Hamish Downer". I can get what I expect with:
select * from addressbook where name like 'hamish d%';
But I'd like to use the match version to match across both columns. Any idea what's going on here? Or how to get match to work as I want?
解决方案
Read the documentation.
The query
... addressbook match 'hamish d'
finds records that containt the two words hamish
and d
. You probably want to search for the phrase hamish d
instead, which you can do with
... addressbook match '"hamish d"'
To search for prefixes, use *
:
... addressbook match '"hamish d*"'
这篇关于带有全文搜索的sqlite在查询空间时找不到结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!