全文搜索引擎,索引庫

 

全文搜索引擎的工做原理理論上很簡單,關鍵技術就是「分詞」,算法

 

  1. 「索引庫」:使用分詞技術把「文檔數據」按分詞拆分,也就是一個文檔拆分爲多個分詞(一條普通數據拆分爲多個詞的索引數據)。這個結構就造成了「索引庫」,索引庫存儲的數據就叫索引(索引數據)(因此當普通數據發生變化的時候,與之所對應的索引也要變化,這裏就涉及到自動實時更新索引,自動定時更新索引,仍是手動更新索引,還有是增量更新索引,仍是徹底重建索引)。
  2. 用戶輸入搜索關鍵字後,首先須要處理的是這個關鍵字,須要把這個關鍵字拆分,拆分的技術仍是使用分詞拆分,把搜索關鍵字拆分紅一個或者多個有意義的字詞。
  3. 而後用這些字詞去「索引庫」中查詢,此時的like實際上是變成等於操做,而後返回結果。說白了全文搜索就是經過對內容分詞把like變成等,固然數據的存儲結構通常爲非結構型數據文檔結構

 

文本數據:Lucene.Net只能對文本信息進行檢索,因此非文本信息要麼轉換成爲文本信息,要麼你就死了這條心吧!數據庫

  分詞算法:將一句完整的話分解成若干詞彙的算法  常見的一元分詞(Lucene.Net內置就是一元分詞,效率高,契合度低),二元分詞,基於詞庫的分詞算法(契合度高,效率低)...搜索引擎

  切詞:將一句完整的話,按分詞算法切成若干詞語spa

       好比:"不是全部痞子都叫一毛" 這句話,若是根據一元分詞算法則被切成: 不 是 所 有 痞 子 都 叫 一 毛 blog

     若是二元分詞算法則切成: 不是 是所 全部 有痞 痞子 子都 都叫 叫一  一毛索引

     若是基於詞庫的算法有可能:不是 全部 痞子 都叫 一毛 具體看詞庫文檔

  索引庫:就是存儲索引數據的庫,簡單的理解成一個提供了全文檢索功能的數據庫(把須要全文檢索的數據存入索引庫),見下圖所示:效率

相關文章
相關標籤/搜索