等考三級數據庫:SQLServer全文索引的問題
時間:
家輝2
資訊
現在回到我們上面的問題,大概這個時候大家都應該想到了數據庫的全文索引了。全文索引是一種特殊類型的基于標記的功能性索引,由 Microsoft SQL Server 全文引擎 (MSFTESQL) 服務創建和維護。創建全文索引的過程與創建其他類型的索引的過程差別很大。MSFTESQL 不是基于某一特定行中存儲的值來構造 B 樹結構,而是基于要索引的文本中的各個標記來創建倒排、堆積且壓縮的索引結構。
為什么說SQL Server 全文索引不是萬能的?就是這個全文索引能解決我們一開始提到的場景嗎?回答是否定。為什么呢?因為它的分詞和倒排索引造成了對字符串“tqq.tencent.com”這樣的內容進行‘“*qq*”’這樣的條件查詢,上面那條記錄是不會被返回的。它的分詞應該是正向最大值的分詞方法,它沒有對方向再進行一次分詞和索引,索引無法查詢到。這個可能會被大家所忽略掉的。