SQLite中使用全文搜索FTS
SQLite支持全文搜索。通過全文搜索功能陕悬,可以方便用戶快速進行查找题暖。在iOS中,GRDB捉超、FMDB等SQLite框架均支持FTS技術(shù)胧卤,如FTS3、FTS4等拼岳。各個框架語法不同灌侣,但是操作方式相同。在使用的時候裂问,都需要根據(jù)目標(biāo)(記錄集或者表)建立對應(yīng)的虛擬表。SQLite會讀取對應(yīng)的數(shù)據(jù),進行分詞堪簿,組成一個B樹痊乾。為了存儲B樹,會構(gòu)建三個真實表椭更。這三個表均以虛擬表的名字為前綴哪审,并分別以_content、_segments虑瀑、_segdir湿滓。下面依次介紹這三個表:
后綴為_content的表保存真實的數(shù)據(jù)內(nèi)容。每條記錄都有docid和docment兩列構(gòu)成舌狗。其中叽奥,docid是記錄編號。document保存具體的內(nèi)容痛侍。每個document都是一個B樹朝氓。
后綴為_segments的表保存B樹的非根節(jié)點。每個記錄都包括blockid和block兩列主届。
后綴為_segdir的表只保存B樹的根節(jié)點赵哲。