2015-07-21 119 views
0

我正在使用DB Browser for SQLite。 SQLite的fts3 says「FTS的文檔主要是爲支持布爾全文查詢而設計的」。我使用fts4構建了一個虛擬表,併成功執行了幾個WHERE ... MATCH查詢。但下面的嘗試會給出錯誤:如何在SQLite全文搜索中排除搜索詞?

SELECT id FROM histsearch WHERE id MATCH ("-1456" IN BOOLEAN MODE); 
SELECT id FROM histsearch WHERE NOT EXIST id MATCH ("1457"); 

是在DB瀏覽器還是在SQLite中的問題?我怎麼能寫這個查詢,所以它會工作?

+0

FTS查詢語法在[documentation](http://www.sqlite.org/fts3.html#section_3)中進行了說明。 –

+0

我沒有意識到我在問一個關於FTS查詢語法的問題(我想查找「排除」並搜索「布爾」,而不是「設置操作」部分)。我以爲我在問關於SQLite或DB瀏覽器。謝謝。 – Noumenon

回答

1

SQLite的全文服務(fts3)默認提供布爾模式,不需要搜索修飾符。數據庫瀏覽器使用fts的standard query syntax,所以不支持。要排除的術語,這樣做

SELECT * FROM indexed WHERE indexed MATCH 'sqlite -database'; 

編輯:但是,你不能排除在全文檢索搜索條件:

一個FTS查詢可能不完全由術語或詞語前綴的使用連接到它們的一元「 - 」運算符進行查詢。

您必須使用NOT LIKE。