1、什麼是lucene
lucene是乙個全文搜尋框架,而不是應用產品。因此它並不像
或者google desktop那麼拿來就能用,它只是提供了一種工具讓你能實現這些產品。
2、lucene能做什麼
3、lucene的效能怎麼樣
下面給出一些測試資料,如果你覺得可以接受,那麼可以選擇。
測試一:250萬記錄,300m左右文字,生成索引380m左右,800執行緒下平均處理時間300ms。
測試二:37000記錄,索引資料庫中的兩個varchar欄位,索引檔案2.6m,800執行緒下平均處理時間1.5ms。
4、lucene為什麼這麼快
倒排索引 :
倒排索引源於實際應用中需要根據屬性的值來查詢記錄。這種索引表中的每一項都包括乙個屬性值和具有該屬性值的各記錄的位址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引(inverted index)。帶有倒排索引的檔案我們稱為倒排索引檔案,簡稱倒排檔案(inverted file)。
倒排檔案(倒排索引),索引物件是文件或者文件集合中的單詞等,用來儲存這些單詞在乙個文件或者一組文件中的儲存位置,是對文件或者文件集合的一種最常用的索引機制。
壓縮演算法:
lz4演算法又稱為realtimecompression algorithm,在作業系統(linux/freebsd)、檔案系統(openzfs)、大資料(hadoop)、搜尋引擎(lucene/solr)、資料庫(hbase)……都可以看到它的身影,可以說是乙個非常通用的演算法。lz4最突出的地方在於它的壓縮/解壓速度。
二元搜尋
:
二元搜尋演算法是在排好序的陣列中找到特定的元素,類似key,value
5、lucene的工作方式
寫入流程
源字串首先經過analyzer處理,包括:分詞,分成乙個個單詞;去除stopword(可選)。 將源中需要的資訊加入document的各個field中,並把需要索引的field索引起來,把需要儲存的field儲存起來。 將索引寫入儲存器,儲存器可以是記憶體或磁碟。
讀出流程
document
使用者提供的源是一條條記錄,它們可以是文字檔案、字串或者資料庫表的一條記錄等等。一條記錄經過索引之後,就是以乙個document的形式儲存在索引檔案中的。使用者進行搜尋,也是以document列表的形式返回。
field
乙個document可以包含多個資訊域,例如一篇文章可以包含「標題」、「正文」、「最後修改時間」等資訊域,這些資訊域就是通過field在document中儲存的。
field有兩個屬性可選:儲存和索引。通過儲存屬性你可以控制是否對這個field進行儲存;通過索引屬性你可以控制是否對該field進行索引。這看起來似乎有些廢話,事實上對這兩個屬性的正確組合很重要
1 什麼是架構
一 乙個軟體從整體到部分,最高層次的劃分 系統由元件組成,聯結器將它們連線起來,任務流描述如何使用元件和聯結器完成一項需求。二 建造乙個系統所做出的最高層次的 難以更改的 商業和技術的決定 市場定位,系統目標,技術選型,資源投入。擱到現實生活中,就是一家之主決定做什麼和如何做。架構的目標?可靠性 r...
1 什麼是陣列
陣列 陣列是相同型別資料的有序集合。陣列描述的是相同型別的若干個資料按照一定的先後次序排列組合而成 其中,每乙個資料稱作乙個陣列元素,每個陣列元素可以通過乙個下標來訪問它們。舉個生活中的例子 比如說乙個足球隊,通常會有幾十個人,但是我們認識他的時候呢,是不是先會把他看做某某隊的隊員,然後再利用他們身...
1 什麼是網路字首
基礎知識 1 已知乙個ip位址,如何區分它是a類位址還是b類或者c類位址呢。a類位址 1.0.0.0 到126.0.0.0 0.0.0.0 和127.0.0.0保留 b 類位址 128.1.0.0到191.254.0.0 128.0.0.0和191.255.0.0保留 c 類位址 192.0.1.0...