全文檢索介紹
資料分類
非結構化資料搜尋(全文搜尋)
倒排索引(inverted index)建立索引
1)將文件切分為乙個乙個單獨的詞
2)去除標點符號
3)去除停詞(stop word)
1)將單詞轉為小寫(lowercase)
2)將單詞縮減為詞根形式(stemming)
3)將單詞轉變為詞根形式(lemmatization)
1)將得到的詞建立詞典
2)對詞典按字母順序排序
3)合併相同的詞成為倒排表
搜尋索引
就像sql語句一樣,全文搜尋系統的查詢語句也有語法,最基本的如:and,or,not等
舉例,輸入的查詢語句為:lucene and solr not hadoop
分析查詢語句中的單詞、關鍵字,對語句中的單詞進行語言處理(等同建立索引中的語言處理),然後按語法規則生成語法樹。
過程大概如下
1)首先,在倒排索引中,分別找出包含單詞lucene, solr, hadoop的文件鍊錶
2)其次,對包含lucene, solr的文件鍊錶進行合併操作,得到即包含lucene又包含solr的文件鍊錶
3)然後,對得到的文件鍊錶與hadoop的文件鍊錶比較排除,得到即包含lucene又包含solr的但不包含hadoop的文件鍊錶
4)最後,得到的文件鍊錶就是我們要找的結果集
對結果集中的每個文件按相關性(relevance)進行打分(scoring),分數最高的排在最前面。而推算文件的相關性一般分為兩個過程
1)找出詞(term)在文件中重要性的過程,也稱計算權重(termweight)的過程
影響乙個詞(term)在一篇文件中的重要性主要有兩個因素
term frequency (tf):即此term在此文件中出現了多少次,tf越大說明越重要
document frequency (df):即有多少文件包含次term,df越大說明這個詞越普通,也就越不重要
2)判斷term之間的關係從而得到文件相關性的過程,也即向量空間模型的演算法(vector space mode)
這個演算法研究中
Lucene 全文檢索技術介紹
前言 本文只介紹了全文檢索的基礎概念,後面陸續會介紹 lucece 的使用。我們生活種的資料總體分為兩種 結構化資料和非結構化資料 常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存...
什麼叫全文檢索 全文檢索概念
全文檢索是指計算機索引程式通過掃瞄文章中的每乙個詞,對每乙個詞建立乙個索引,指明該詞在文章中出現的次數和位置,當使用者查詢時,檢索程式就根據事先建立的索引進行查詢,並將查詢的結果反饋給使用者的檢索方式。這個過程類似於通過字典中的檢索字表查字的過程。全文檢索的方法主要分為按字檢索和按詞檢索兩種。按字檢...
什麼叫全文檢索 全文檢索概念
全文檢索是指計算機索引程式通過掃瞄文章中的每乙個詞,對每乙個詞建立乙個索引,指明該詞在文章中出現的次數和位置,當使用者查詢時,檢索程式就根據事先建立的索引進行查詢,並將查詢的結果反饋給使用者的檢索方式。這個過程類似於通過字典中的檢索字表查字的過程。全文檢索的方法主要分為按字檢索和按詞檢索兩種。按字檢...