跳到主要內容

【資訊軟體知識】資料檢索技術 - 倒排索引(Inverted Index)

數據的時代,如何有效率的搜尋來找到我們要的答案?這時候就要透過一些資訊檢索的技術來幫我們提升效率了,而本篇會介紹索引的基本概念以及為什麼演化至倒排索引,為我們帶來了哪些好處?

索引只是搜尋檢索的一個環節,未來的幾個篇章我們也會逐一介紹我們目前使用的搜尋引擎如何聰明的知道我們想要什麼? 那我們就趕緊進入主題吧!

什麼是索引?



相信我們都知道書籤的作用吧! 書籤就是透過標題或是摘要定位到正確頁數或者文件位置的一種標記方式,透過這種方式大幅度的減少我們掃過整本書的時間,我們只要記住這個摘要,就能精確地找出我們需要的檔案,但是有發現一個問題嗎? 假設我想要找文章中的某個片段時,是不是就不容易達到我們的目的了? 這時候就需要有倒排索引(Inverted Index)的技術來幫我們實現了!

那什麼又是倒排索引? 能解決什麼問題呢?

當資料隨著時間遞增,越來越繁雜時,我們都知道要找到正確的資料是一件不容易的事, 以前我們可能需要逐頁翻找, 後來加入了書籤功能, 透過標題、群組整理濃縮的方式,快速定位到目標,但是這仍遠遠不夠,那可以怎麼做呢?

答案就是透過倒排索引(Inverted Index)的方式,將每一個文件的內容以詞的方式切割,成為書籤的標記方式,如下圖:



檢索時有什麼幫助呢? 假設我們今天要找蘋果,那麼只要輸入apple,就能得到文件1與文件2都出現蘋果,我們再想的更深入一點,假設每個書籤再多記錄這個詞出現在文件中的哪個位置,那麼我們是不是可以搭配更強大的搜尋方式,以「一個蘋果」為例,我們可以搜尋「an apple」,透過這樣有順序的表達詞語,我們就可以非常語意化的來搜尋文件位置。



看到這邊,相信大家已經非常清楚倒排索引為我們帶來了什麼樣的巨大改變,讓我們從原本很固定的搜尋方式,可以透過更聰明、符合人性的搜尋方式來查找文件,甚至可以加入距離的限制條件,讓我們更精準的找到目標。

為什麼更快更精準?

  • 事前建立機制,再記錄之前就先進行斷詞索引,讓後續的搜尋更加省工。
  • 索引額外記錄了位置資訊,檢索時透過詞與詞的順序、位置...等限制條件來精準找到目標。

結語

數位時代的來臨,我們許多的資料都轉移到網際網路,相信在大數據的環境下,傳統的檢索方式也不敷使用了,因此才會演進更有效率的檢索方式。

而這項技術也是許多搜尋引擎的底層實現方式,例如: Lucene、Elasticsearch...等產品。

下一篇我們再依著檢索技術進行更深入的探討吧!


喜歡撰寫文章的你,不妨來了解一下:Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?歡迎加入一起練習寫作,賺取知識,累積財富!

📚 如果想看更多精選文章,或者關於我的相關資訊請來這裡...

💬 如果您有任何問題,也歡迎底下留言告訴我,讓我們一起學習 💬


留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)