Lucene(一):數據庫搜索弊端以及全文搜索的概念

生活中的搜索

相關的搜索實際上無處不在,比如百度的搜索,Ecplise中的Help搜索,Windows系統中的文件搜索等

我們通常從搜索結果中經常發現有這麼一種規律:越是符合條件的搜索結果會放在前面,不太符合條件的搜索結果會排在後面,並且通常會設置字體高亮

數據庫檢索帶來的麻煩

假如我們要進行一次搜索:

場景一:

select * from content where title like '%目標字段';

但是這樣搜索會有一個麻煩,就是在數據庫中通過like進行模糊查詢的話,會讓索引失效

場景二:

select * from content where title like '%ant%'

搜索效果不太理想,比如我們想要搜索ant( 螞蟻),但是搜索出了過多的結果出來,並且我們最想要的結果排在稍後的位置,並沒有相關度的排序,客戶更想要的是相關度最接近的排在最前面

在這裏插入圖片描述

而要解決這些問題,就要依靠Lucene了

什麼是全文檢索?

說全文檢索之前,必須先說下數據的分類:

  • 結構化數據
  • 半結構化數據
  • 非結構化數據

結構化數據:指的是有固定格式或有限長度的數據,如數據庫

半結構化數據:如XML,HTML,它們有自己的標籤比如< XX></ XX>,但是< XX>裏面寫多寫少,全看具體需求

非結構化數據;比如word文檔,郵件等

非結構化數據有一種叫法叫"全文數據",從全文數據中進行檢索就叫全文檢索

特點就是:只關注文本,不關心語義

應用場景:比如百度搜索,你去搜索一個“麥當勞在哪裏?”,搜索引擎並不會直接給予答案,而是去搜索標題裏面含有"麥當勞在哪裏"的網頁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章