發(fā)布時間:2025-05-11 15:26:49
歷史文章集合(累積490+)《 國內(nèi)最全的SpringBoot系列之一》《 國內(nèi)最全的SpringBoot系列之二》《 國內(nèi)最全的SpringBoot系列之三》《 國內(nèi)最全的SpringBoot系列之四》《 國內(nèi)最全的SpringBoot系列之五》
《 國內(nèi)最全的Spring Boot系列之六》
《Mybatis-Plus通用枚舉功能 [MyBatis-Plus系列] - 第493篇》
《Mybatis-Plus自動填充功能配置和使用 [MyBatis-Plus系列] - 第494篇》「值得收藏學(xué)習(xí)」
悟纖:哎,頭發(fā)都白了~
師傅:徒兒這是怎么了?
悟纖:最近發(fā)現(xiàn)mysql的like “%sprinboot%” 查詢很慢呢?
師傅:徒兒,你這是全表掃描了,在數(shù)據(jù)量大的情況下,確實(shí)查詢會比較慢。
悟纖:師傅,那這個怎么辦,這個搜索功能少不了呀。
師傅:這個師傅就要用到搜索引擎了。
悟纖:那師傅,你趕緊教教我這個技能呢。
師傅:為師正有這個打算。
悟纖:那真是太好了。開干?。。。。?!
全文檢索導(dǎo)讀
大家好,我是悟纖。學(xué)習(xí)ElasticSearch之前,要先理解全文檢索的基本概念。
一、什么是全文檢索
全文檢索是一種在大量文本數(shù)據(jù)中快速查找特定關(guān)鍵詞或短語的技術(shù),能夠返回相關(guān)的搜索結(jié)果。
(1)查詢有明確的搜索條件,如年齡、顏色、價格等范圍界定。
(2)檢索無搜索條件邊界,結(jié)果取決于相關(guān)性,涉及同義詞、諧音、別名、錯別字、網(wǎng)絡(luò)熱梗等。
二、用傳統(tǒng)數(shù)據(jù)庫實(shí)現(xiàn)搜索的問題
使用MySQL存儲文章時,使用內(nèi)容像“%Java設(shè)計(jì)模式%”這樣的查詢會導(dǎo)致全表掃描,效率低下且結(jié)果不符合期望。
三、全文檢索的原理
全文檢索涉及文本處理、建立索引和搜索結(jié)果排序。通過分詞、去除停用詞等預(yù)處理,建立倒排索引,快速定位相關(guān)文檔。
倒排索引是全文檢索中的關(guān)鍵結(jié)構(gòu),用于記錄單詞與文檔的關(guān)系,實(shí)現(xiàn)快速搜索。
四、正排索引與倒排索引的區(qū)別
正排索引按文檔順序排列,適合整體檢索,但存儲和查詢效率受限于大量文本數(shù)據(jù)。
倒排索引以單詞為索引鍵,記錄在哪些文檔中出現(xiàn),適用于大規(guī)模文本數(shù)據(jù)的關(guān)鍵詞搜索和相關(guān)性排序。
建立關(guān)鍵詞與文章的對應(yīng)關(guān)系表即為倒排索引。
總結(jié)
全文檢索技術(shù)在信息管理、搜索應(yīng)用中發(fā)揮重要作用。了解其原理和不同索引結(jié)構(gòu)的特性,有助于提升搜索性能和準(zhǔn)確性。