今天 我們來說說 NoSql 中的 Elasticsearch 大家基本都叫它 ES
官方介紹 它是一個(gè)分布式全文搜索引擎
分布式是一個(gè)系統(tǒng)架構(gòu)的概念
而 全文搜索引擎
全文搜索 可以說基本大家天天都在接觸 就比如
我們京東購物 想買什么東西 在全文輸入框中搜索 它就會在所有物品中 幫你找出需要的
它會將 所有的數(shù)據(jù)進(jìn)行一個(gè)分類 然后 在你輸入時(shí) 將與你輸入內(nèi)容想匹配的數(shù)據(jù)都推送出來
但 還有一個(gè)分類的概念
比如 我們只是靠name 搜索 用戶搜索的 spring
那么 下圖中 1 2 3 4都沒有問題 但第五本書顯然會被過濾掉 因?yàn)樗膎ame 不包含內(nèi)容
但是按照邏輯講 他和 spring有關(guān)系 它應(yīng)該要出現(xiàn) 所以 我們不能只按name查詢
而 我們查詢 spring 實(shí)戰(zhàn) 那么 它們也該出來 只要能匹配上的 不管內(nèi)容是否能完全一樣 都要出來
這就是 全文搜搜 而 ES 就是一個(gè)全文搜索的解決方案
全文搜索 思路是 將某個(gè)內(nèi)容分詞
例如 Spring實(shí)戰(zhàn) 第5版
那么 詞就會被拆分為
Spring
實(shí)戰(zhàn)
第5版
當(dāng)然 也不能亂拆 就比如 我每個(gè)字母 每一個(gè)字符都拆
那用戶輸入什么都帶出來一大片沒有意義的數(shù)據(jù)
我們 我們通過關(guān)鍵字分組
例如 我們輸入 Spring 為搜索關(guān)鍵字 那么 就會帶出 1 2 3 4 5條數(shù)據(jù)的 數(shù)據(jù)id與部分字段內(nèi)容
實(shí)戰(zhàn)為關(guān)鍵字 就會帶出 第1條數(shù)據(jù)的 id與部分內(nèi)容字段
di5版也是 會帶出第一條數(shù)據(jù)的 id和部分字段數(shù)據(jù)
就比如 進(jìn)洞 我們搜素電動 他就會帶出 很多關(guān)于電動物品的信息
但是 這里 每條數(shù)據(jù)都只是帶出了一部分信息
當(dāng)我們點(diǎn)擊某個(gè)進(jìn)去 查看詳情 它其實(shí)是將你點(diǎn)的數(shù)據(jù) id拿到 然后根據(jù)id再去查詢詳情
因?yàn)橛行┳侄?外面展示本來就不需要呀 就比如這個(gè)視頻 外面用過圖片就好了 進(jìn)來了再加載視頻這種很大的東西 要不然 匹配出 一百個(gè)商品 還加載 一百個(gè)視頻嗎?
那么 就是說 全文搜索 我們先要對提供的數(shù)據(jù)進(jìn)行分詞 將一個(gè)文本 分詞若干個(gè)關(guān)鍵字
然后 通過這些關(guān)鍵字 幫助用戶匹配出符合要求的數(shù)據(jù)
這種方式 會大大提高搜索效率
還有就是 索引的概念 我們傳統(tǒng)索引是根據(jù)id查數(shù)據(jù)
而這里 我們是根據(jù)數(shù)據(jù)得到id 這個(gè)過程叫倒排索引 然后再用id獲取數(shù)據(jù) 用傳統(tǒng)索引都OK文章來源:http://www.zghlxwxcb.cn/news/detail-824978.html
然后就是 我們?yōu)榱烁玫墓芾?需要提前建立關(guān)系 每個(gè)關(guān)鍵字 對應(yīng) 某些數(shù)據(jù) 部分內(nèi)容與id的數(shù)據(jù)關(guān)系 被我們稱作文檔
例如 Spring 關(guān)鍵字 對應(yīng) 1 2 3 4 5 條數(shù)據(jù)的 id與部分字段 這個(gè)對應(yīng)關(guān)系 就是一個(gè)文檔
創(chuàng)建無數(shù)個(gè)文檔 存入 這樣就會方便使用
然后就是 根據(jù)關(guān)鍵字 使用文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-824978.html
到了這里,關(guān)于簡述Elasticsearch(ES)是什么 全文搜索概念 (倒排索引 管理文檔)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!