全網最詳細的大資料ELK文章系列,強烈建議收藏加關注!
新文章都已經列出歷史文章目錄,幫助大家回顧前面的知識重點,
目錄
系列歷史文章
一、什么是全文檢索
1、結構化資料與非結構化資料
2、搜索結構化資料和非結構化資料
3、全文檢索
二、Lucene簡介
三、倒排索引結構
四、企業中為什么不直接使用Lucene
1、Lucene的內建不支持分布式
2、區間范圍搜索速度非常緩慢
3、可靠性無法保障
系列歷史文章
2021年大資料ELK(三):Lucene全文檢索庫介紹
2021年大資料ELK(二): Elasticsearch簡單介紹
2021年大資料ELK(一):集中式日志協議堆疊Elastic Stack簡介
一、什么是全文檢索
1、結構化資料與非結構化資料
我們生活中的資料總體分為兩種:結構化資料和非結構化資料,
- 結構化資料:指具有固定格式或有限長度的資料,如資料庫,元資料等
- 非結構化資料:指不定長或無固定格式的資料,如郵件,word檔案等磁盤上的檔案
2、搜索結構化資料和非結構化資料
- 使用SQL語言專門搜索結構化的資料
- 使用ES/Lucene/solr建立倒排索引,根據關鍵字就可以搜索一些非結構化(文本)的資料
3、全文檢索
全文檢索是指:
- 通過一個程式掃描文本中的每一個單詞,針對單詞建立索引,并保存該單詞在文本中的位置、以及出現的次數
- 用戶查詢時,通過之前建立好的索引來查詢,將索引中單詞對應的文本位置、出現的次數回傳給用戶,因為有了具體文本的位置,所以就可以將具體內容讀取出來了
- 類似于通過字典中的檢索字表查字的程序
二、Lucene簡介

- Lucene是一種高性能的全文檢索庫,在2000年開源,最初由大名鼎鼎的Doug Cutting(道格·卡丁)開發

- Lucene是Apache的一個頂級開源專案,是一個全文檢索引擎工具包,但Lucene不是一個完整的全文檢索引擎,它只是提供一個基本的全文檢索的架構,還提供了一些基本的文本分詞庫
- Lucene是一個簡單易用的工具包,可以方便的實作全文檢索的功能
三、倒排索引結構
倒排索引是一種建立索引的方法,是全文檢索系統中常用的資料結構,通過倒排索引,就是根據單詞快速獲取包含這個單詞的檔案串列,倒排索引通常由兩個部分組成:單詞詞典、檔案,
檔案(Document):一般搜索引擎的處理物件是互聯網網頁,而檔案這個概念要更寬泛些,代表以文本形式存在的存盤物件,相比網頁來說,涵蓋更多種形式,比如Word,PDF,html,XML等不同格式的檔案都可以稱之為檔案,再比如一封郵件,一條短信,一條微博也可以稱之為檔案,在本書后續內容,很多情況下會使用檔案來表征文本資訊,
檔案集合(Document Collection):由若干檔案構成的集合稱之為檔案集合,比如海量的互聯網網頁或者說大量的電子郵件都是檔案集合的具體例子,
檔案編號(Document ID):在搜索引擎內部,會將檔案集合內每個檔案賦予一個唯一的內部編號,以此編號來作為這個檔案的唯一標識,這樣方便內部處理,每個檔案的內部編號即稱之為“檔案編號”,后文有時會用DocID來便捷地代表檔案編號,
單詞編號(Word ID):與檔案編號類似,搜索引擎內部以唯一的編號來表征某個單詞,單詞編號可以作為某個單詞的唯一表征,
倒排索引(Inverted Index):倒排索引是實作“單詞-檔案矩陣”的一種具體存盤形式,通過倒排索引,可以根據單詞快速獲取包含這個單詞的檔案串列,倒排索引主要由兩個部分組成:“單詞詞典”和“倒排檔案”,
單詞詞典(Lexicon):搜索引擎的通常索引單位是單詞,單詞詞典是由檔案集合中出現過的所有單詞構成的字串集合,單詞詞典內每條索引項記載單詞本身的一些資訊以及指向“倒排串列”的指標,
倒排串列(PostingList):倒排串列記載了出現過某個單詞的所有檔案的檔案串列及單詞在該檔案中出現的位置資訊,每條記錄稱為一個倒排項(Posting),根據倒排串列,即可獲知哪些檔案包含某個單詞,
倒排檔案(Inverted File):所有單詞的倒排串列往往順序地存盤在磁盤的某個檔案里,這個檔案即被稱之為倒排檔案,倒排檔案是存盤倒排索引的物理檔案,

四、企業中為什么不直接使用Lucene
1、Lucene的內建不支持分布式
- Lucene是作為嵌入的類別庫形式使用的,本身是沒有對分布式支持,
2、區間范圍搜索速度非常緩慢
- Lucene的區間范圍搜索API是擴展補充的,對于在單個檔案中term出現比較多的情況,搜索速度會變得很慢
- Lucene只有在資料生成索引檔案之后(Segment),才能被查詢到,做不到實時
3、可靠性無法保障
- 無法保障Segment索引段的可靠性
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大資料系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299633.html
標籤:其他
上一篇:DM資料庫性能診斷
下一篇:PMO首先要有自己的職能定位
