辛星淺析postgresql中的全文索引(上)

來源:互聯網
上載者:User

標籤:辛星   pgsql   postgresql   全文索引   

     全文檢索搜尋通常也就是文本搜尋,它可以提供滿足查詢的識別自然語言的能力,並且任意性地通過相關性查詢進行排序。搜尋最常見的類型就是找到所有包含給定的查詢術語的記錄,並且以相似性的查詢順序返回它們。

     對於~、~*、like和ilike操作符來說,它們缺少很多特性:①對語言支援較弱,比如不能識別單詞的複數形式。②沒有有效分類和排序手段 。 ③執行速度緩慢,通常就是因為無法有效使用索引。

      全文索引允許文檔被預先處理,並且它可以為後邊的快速搜尋儲存一個索引。預先處理做的工作主要有:①解析文檔標記。比如它可以標識不同類別的記號,它可以區分數字、複合詞、電子郵件地址等等,它們使用不同的處理方式。我們的pgsql使用解析器來執行這一步。②轉換標記為詞。詞是一個字串,就像一個標記一樣,但是它被標準化過,這樣同一個詞的不同形式都是一樣的。比如它們一般會刪除尾碼。我們的pgsql使用詞典執行這一步。它可以提供各種標準詞典,以及為特定的需求創造的自訂字典。③為最佳化搜尋儲存預先處理文檔。通常每個文檔都可以表示為標準化詞彙排序數組。

       對於字典,它可以允許細粒度控制如何使用合適的字典正常化標記。我們可以:①定義不被索引的屏蔽詞。②映射同義字到一個詞。③使用同義字詞典將短語映射到一個詞。④根據詞典將詞的不同形式映射到一種範式。⑤根據詞根將一個詞的不同形式映射成為一種範式。

        通常一個文檔就是全文檢索搜尋系統的搜尋單元,它可以是一篇文章或者是一封郵件。文本搜尋引擎必須能夠解析這個文檔,而且可以儲存它們同關鍵詞的聯絡性,而這些聯絡用來搜尋包含查詢詞的文檔。

       在pgsql中,文檔通常是一個資料庫表中一行的文字欄位,或者是這些欄位的可能組合(級聯),可能儲存在多個表中或者動態獲得。也就是說,一個文檔可以由索引的不同部分部分構成,它不一定非要作為一個整體儲存。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

辛星淺析postgresql中的全文索引(上)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.