全文檢索是對大數據文本進行索引,在創建的索引中對要查找的單詞進行進行搜索,定位哪些文本數據包括要搜索的單詞。所以,全文檢索的所有工做就是創建索引和在索引中搜索定位,全部的工做都是圍繞這兩個來進行的。算法
創建全文索引中有兩項很是重要,一個是如何對文本進行分詞,一是創建索引的數據結構。分詞的方法基本上是二元分詞法、最大匹配法和統計方法。索引的數據結構基本上採用倒排索引的結構。數據庫
分詞的好壞關係到查詢的準確程度和生成的索引的大小。在中文分詞發展中,早期常常使用分詞方式是二元分詞法,該方法的基本原理是將包含中文的句子進行二元分割,不考慮單詞含義,只對二元單詞進行索引。所以該方法所分出的單詞數量較多,從而產生的索引數量巨大,查詢中會將無用的數據檢索出來,好處是算法簡單不會漏掉檢索的數據。以後又發展出最大匹配分詞方法,該方法又分爲正向最大分詞和逆向最大分詞。其原理和查字典相似,對經常使用單詞生成一個詞典,分析句子的過程當中最大的匹配字典中的單詞,從而將句子拆分爲有意義的單詞鏈。最大匹配法中正向分詞方法對偏正式詞語的分辨容易產生錯誤,好比「首飾和服裝」會將「和服」做爲單詞分出。達夢數據庫採用的是改進的逆向最大分詞方法,該分詞方法較正向正確率有所提升。最爲複雜的是經過統計方式進行分詞的方法。該方法採用隱式馬爾科夫鏈,也就是後一個單詞出現的機率依靠於前一個單詞出現的機率,最後統計全部單詞出現的機率的最大爲分詞的依據。這個方法對新名詞和地名的識別要遠遠高於最大匹配法,準確度隨着取樣文本的數量的增大而提升。數據結構
二元分詞方法和統計方法是不依賴於詞典的,而最大匹配法分詞方法是依賴於詞典的,詞典的內容決定分詞結構的好壞。大數據
全文檢索的索引被稱爲倒排索引,之因此成爲倒排索引,是由於將每個單詞做爲索引項,根據該索引項查找包含該單詞的文本。所以,索引都是單詞和惟一記錄文本的標示是一對多的關係。將索引單詞排序,根據排序後的單詞定位包含該單詞的文本。排序