2013-03-13 97 views
1

我正在使用全文搜索來查找巨大樹結構中的某些項目。大多數時候我只對節點下的項目進行匹配感興趣。但是當我使用MYTABLE中的select *來匹配'XXX'時,它會在整個樹結構中進行全文搜索。在SQLite中優化全文搜索

有沒有一種方法可以指定MYTABLE中用於全文搜索的行? (即匹配'XXX')。任何提示將不勝感激!

回答

1

在FTS表上有效工作的唯一查詢是MATCH搜索和搜索rowid/docid

因此,要搜索子樹,應該將(根)子樹的ID作爲正在搜索的全文的一部分。 請注意,大多數標記器會丟棄交錯字符,因此ID應該可能是一個句子,其中的單詞指定從根到子樹的路徑。 例如:

SELECT * 
FROM MyTable 
WHERE MyTable MATCH 'ID:"root 3 1 4" Text:whatever' 

,可以增加的話選擇性的ID如果包含在每個單詞的樹級別:

SELECT * 
FROM MyTable 
WHERE MyTable MATCH 'ID:"1x3 2x1 3x4" Text:whatever' 
+0

謝謝!我需要更努力地投票給你... – user1482266 2013-03-13 23:13:06