我想知道全文搜索(搜索文件中的數據)和標準數據庫搜索(LIKE,IN等)之間有什麼區別。全文搜索vs標準數據庫搜索
我在這裏注意到的是,在文件中,您沒有數據類型,但在數據庫中,您可以爲特定數據定義數據類型。
我感興趣的是這些搜索更快,兩者的優點和缺點。
謝謝。
我想知道全文搜索(搜索文件中的數據)和標準數據庫搜索(LIKE,IN等)之間有什麼區別。全文搜索vs標準數據庫搜索
我在這裏注意到的是,在文件中,您沒有數據類型,但在數據庫中,您可以爲特定數據定義數據類型。
我感興趣的是這些搜索更快,兩者的優點和缺點。
謝謝。
全文搜索有幾個優點。
索引:
喜歡的東西:
WHERE Foo LIKE '%Bar';
不能採取指數的優勢。它必須查看每一行,並查看它是否匹配。然而,全文索引可以。事實上,全文索引可以在匹配的話,那些話有多接近在一起的順序方面提供了更大的靈活性等
詞幹:
一個全文搜索可以幹話。如果您搜索運行,則可以獲得「跑」或「跑」的結果。大多數全文引擎具有各種語言的詞典。
加權結果:
甲全文索引可以包括多個列。例如,您可以搜索「桃派」,索引可以包含標題,關鍵字和主體。與標題匹配的結果可以是加權更高,因爲更相關,並且可以排序以顯示在頂部附近。
缺點:
甲全文索引可以潛在地比標準的B樹索引較大巨大,多次。出於這個原因,許多提供數據庫實例的託管提供商禁用此功能,或至少收取額外費用。例如,最後我檢查了一下,Windows Azure不支持全文查詢。
全文索引也可能會更慢。如果數據變化很大,與標準索引相比,可能會有一些滯後更新索引。
感謝您的回答。這對我很有用。但我總是想知道全文搜索在後臺如何工作。我需要的是一些參考資料來了解它。我想知道所有這些工作的模式。 – zajke
這是一個很大的話題,它在SQL Server,Oracle,Postgres等方面有所不同。 –
無論是SQL Server,Oracle還是Postgres,任何東西都會對我有所幫助。如果你知道一些參考資料,我會很感激。謝謝。 – zajke