什么是網(wǎng)絡(luò)搜索引擎

倒排索引為什么用FST(或者trie樹)而不是hashmap?hashmap只能滿足精確key查找,倒排需要匹配各種模糊搜索。

1. 召回

查詢query轉(zhuǎn)為集合運(yùn)算的bool表達(dá)式

改寫優(yōu)化下get_word_match,更加適用于短語

2. 排序:關(guān)鍵詞個(gè)數(shù) - 向量余弦夾角- tf-idf

召回主要突出文檔與查詢的相似性、排序更主要是找到文檔與文檔之間的差異性、區(qū)分性從而獲得相關(guān)度的不同評(píng)分。

下方向量每一個(gè)維度表示一個(gè)詞組,所有詞組組成詞表。

每個(gè)文檔的打分實(shí)際就是在所選的向量空間下求查詢短語向量與當(dāng)前文檔向量之間的相似度。

所以詞表選擇影響很大,可以選當(dāng)前文檔的所有分詞、召回結(jié)果集的分詞集合,候選集(相當(dāng)于倒排索引的詞典?)所有文檔的分詞、所有采集到的文檔的總分詞集合、整個(gè)文檔世界的分詞集合。一般選擇候選集。

對(duì)于長(zhǎng)文檔,可以讓tf/文檔長(zhǎng)度代替tf來抵消長(zhǎng)文檔對(duì)詞頻的影響

預(yù)處理優(yōu)化:在構(gòu)建倒排索引的詞典vocabulary的時(shí)候,可以同時(shí)把所有文檔的tf/idf值都提前計(jì)算出來保存到dict,當(dāng)執(zhí)行搜索時(shí)可以直接從dict詞典中查出來

相對(duì)而言,粗排往往是整個(gè)搜索性能的瓶頸,粗排可以通過減少向量維度(如只用query生成詞典vocabulary空間),或者簡(jiǎn)化算法(比如用ann算法,而不用tf/idf、bm25等復(fù)雜算法)等來快速降低文檔規(guī)模。另外,分布式環(huán)境下也有更多優(yōu)化方式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容