Lucene使用前概念了解

2021-09-25 11:53:12 字數 1021 閱讀 6388

資料庫中的搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。

為什麼資料庫搜尋很容易?

因為資料庫中的資料儲存是有規律的,有行有列而且資料格式、資料長度都是固定的。

我們生活中的資料總體分為兩種:結構化資料和非結構化資料。

結構化資料:指具有固定格式或有限長度的資料,如資料庫,元資料等。

非結構化資料:指不定長或無固定格式的資料,如郵件,word文件等磁碟上的檔案

所謂順序掃瞄,比如要找內容包含某乙個字串的檔案,就是乙個文件乙個文件的看,對於每乙個文件,從頭看到尾,如果此文件包含此字串,則此文件為我們要找的檔案,接著看下乙個檔案,直到掃瞄完所有的檔案。如利用windows的搜尋也可以搜尋檔案內容,只是相當的慢。

(2)全文檢索(full-text search)

將非結構化資料中的一部分資訊提取出來,重新組織,使其變得有一定結構,然後對此有一定結構的資料進行搜尋,從而達到搜尋相對較快的目的。這部分從非結構化資料中提取出的然後重新組織的資訊,我們稱之索引。

例如:字典。字典的拼音表和部首檢字表就相當於字典的索引,對每乙個字的解釋是非結構化的,如果字典沒有音節表和部首檢字表,在茫茫辭海中找乙個字只能順序掃瞄。然而字的某些資訊可以提取出來進行結構化處理,比如讀音,就比較結構化,分聲母和韻母,分別只有幾種可以一一枚舉,於是將讀音拿出來按一定的順序排列,每一項讀音都指向此字的詳細解釋的頁數。我們搜尋時按結構化的拼音搜到讀音,然後按其指向的頁數,便可找到我們的非結構化資料——也即對字的解釋。

這種先建立索引,再對索引進行搜尋的過程就叫全文檢索(full-text search)。

雖然建立索引的過程也是非常耗時的,但是索引一旦建立就可以多次使用,全文檢索主要處理的是查詢,所以耗時間建立索引是值得的。

可以使用lucene實現全文檢索。lucene是apache下的乙個開放源**的全文檢索引擎工具包。提供了完整的查詢引擎和索引引擎,部分文字分析引擎。lucene的目的是為軟體開發人員提供乙個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能。

資料結構 概念了解

這只是我的一些筆記 資料結構與演算法廣義理解 資料結構與演算法的全面知識點 10個資料結構 10個演算法 邊學邊練 這一招非常有用。建議你每週花1 2個小時的時間,集中把這週的三節內容涉及的資料結構和演算法,全都自己寫出來,用 實現一遍。知識需要沉澱,不要想試圖一下子掌握所有 時間複雜度 大o時間複...

網路 一些概念了解

reactor和proactor模式的主要區別是真正的讀取和寫入操作,是由誰來完成的。reactor 應用程式自己讀取或者寫入資料。應用程式完成 proactor 應用程式不需要進行實際的讀寫過程,只需要從快取區讀取或者寫入即可。核心會讀取快取區或者寫入快取區到真正的io裝置。核心完成 同步和非同步...

從基本概念了解Keras

這篇文章會總結幾個keras的基本概念,了解了這幾個基本概念,keras建模將會快速上手。話不多說,直奔主題!張量 tensor 可以理解為keras裡的一種資料型別,相當於c語言裡得陣列。你在儲存的時候總需要了解資料的長度 大小還有維度各種各樣的資訊,而這個tensor就是用來幹這個的。舉幾個例子...