一、爲什麼需要搜索引擎?
數據庫適合結構化數據的精確查詢,而不適合半結構化、 非結構化數據的模糊查詢及靈活搜索(特別是數據量大時),無法提供想要的實時性。
結構化數據:用表、字段表示的數據
半結構化數據: xml、html
非結構化數據: 文本、 文檔、 圖片、 音頻、 視頻等
二、搜索引擎如何做到?
1、爲什麼稱爲倒排索引?
原名Inverted index, 失敗地翻譯成了倒排索引, 正確翻譯爲: 反向索引
2、索引可以合併在一起嗎?
3、反向索引的記錄數會不會很大?
《牛津詞典》 收詞41萬
《現代漢語規範詞典》 收錄字數13000多個, 收錄詞數72000多個
結論: 量不會很大, 100萬以內; 通過這個索引找文章會很快。
4、如何建立這樣一個索引?
5、java開源中文分詞器有哪些?
常用中文分詞器有: IKAnalyzer mmseg4j
6、分詞時能不能統計出詞的出現次數、 位置?
三、搜索
1、如何做才能快速查詢到與“釣魚島是中國的” 有關的新聞?
使用分詞器對數據進行分詞, 建立反向索引
2、有了反向索引了, 如何進行搜索?