摘要:什么是倒排索引與正排索引相反,由查詢(xún)的過(guò)程,使用倒排索引。分詞后倒排索引我愛(ài)北京到家美好由檢索詞快速找到包含這個(gè)查詢(xún)?cè)~的網(wǎng)頁(yè)就是倒排索引。
△什么是正排索引(forward index)?
簡(jiǎn)言之,由key查詢(xún)實(shí)體的過(guò)程,使用正排索引。
例如,用戶表:
t_user(uid, name, passwd, age, sex)
由uid查詢(xún)整行的過(guò)程,就時(shí)正排索引查詢(xún)。
又例如,網(wǎng)頁(yè)庫(kù):
t_web_page(url, page_content)
由url查詢(xún)整個(gè)網(wǎng)頁(yè)的過(guò)程,也是正排索引查詢(xún)。
網(wǎng)頁(yè)內(nèi)容分詞后,page_content會(huì)對(duì)應(yīng)一個(gè)分詞后的集合list。
簡(jiǎn)易的,正排索引可以理解為:
Map>
能夠由網(wǎng)頁(yè)url快速找到內(nèi)容的一個(gè)數(shù)據(jù)結(jié)構(gòu)。
畫(huà)外音:時(shí)間復(fù)雜度可以認(rèn)為是O(1)。
△什么是倒排索引(inverted index)?
與正排索引相反,由item查詢(xún)key的過(guò)程,使用倒排索引。
對(duì)于網(wǎng)頁(yè)搜索,倒排索引可以理解為:
Map>
能夠由查詢(xún)?cè)~快速找到包含這個(gè)查詢(xún)?cè)~的網(wǎng)頁(yè)的數(shù)據(jù)結(jié)構(gòu)。
畫(huà)外音:時(shí)間復(fù)雜度也是O(1)。
舉個(gè)例子,假設(shè)有3個(gè)網(wǎng)頁(yè):
url1 -> “我愛(ài)北京”
url2 -> “我愛(ài)到家”
url3 -> “到家美好”
這是一個(gè)正排索引:
Map。
分詞之后:
url1 -> {我,愛(ài),北京}
url2 -> {我,愛(ài),到家}
url3 -> {到家,美好}
這是一個(gè)分詞后的正排索引:
Map>。
分詞后倒排索引:
我 -> {url1, url2}
愛(ài) -> {url1, url2}
北京 -> {url1}
到家 -> {url2, url3}
美好 -> {url3}
由檢索詞item快速找到包含這個(gè)查詢(xún)?cè)~的網(wǎng)頁(yè)Map>就是倒排索引。
畫(huà)外音:明白了吧,詞到url的過(guò)程,是倒排索引。
正排索引和倒排索引是spider和build_index系統(tǒng)提前建立好的數(shù)據(jù)結(jié)構(gòu),為什么要使用這兩種數(shù)據(jù)結(jié)構(gòu),是因?yàn)樗軌蚩焖俚膶?shí)現(xiàn)“用戶網(wǎng)頁(yè)檢索”需求。
畫(huà)外音,業(yè)務(wù)需求決定架構(gòu)實(shí)現(xiàn),查詢(xún)起來(lái)都很快。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74218.html
摘要:所有的倒排索引都是基于正排數(shù)據(jù)構(gòu)建的。數(shù)據(jù)規(guī)模的難題節(jié)中描述的拆表的方式,本質(zhì)上是將多個(gè)數(shù)值型拆成了多個(gè)插入記錄,然后再建立倒排索引。 超大規(guī)模檢索中的索引設(shè)計(jì) 一 問(wèn)題背景 1.1 業(yè)務(wù)背景 精準(zhǔn)廣告場(chǎng)景中,人群定向的常用方法是:根據(jù)各種不同的規(guī)則,將每一個(gè)用戶(User)打上豐富的標(biāo)簽。與此同時(shí),廣告主(Member)在根據(jù)規(guī)則圈選投放人群時(shí),系統(tǒng)也會(huì)將廣告(Ad)打上各種的標(biāo)...
摘要:倒排索引是基于詞的搜索。關(guān)于倒排索引要學(xué)習(xí)搜索引擎,就需要了解倒排索引,要更加深刻地理解倒排索引,就要先了解什么是正排索引表。由于不是由記錄來(lái)確定屬性值,而是由屬性值來(lái)確定記錄的位置,因而稱(chēng)為倒排索引。 Lucene是什么? Lucene是apache軟件基金會(huì)4 jakarta項(xiàng)目組的一個(gè)子項(xiàng)目,是一個(gè)開(kāi)放源代碼的全文檢索引擎工具包,但它不是一個(gè)完整的全文檢索引擎,而是一個(gè)全文檢索引...
摘要:基本概念在深入解讀之前,先了解下的幾個(gè)基本概念,以及這幾個(gè)概念背后隱藏的一些東西。如圖是一個(gè)內(nèi)的基本組成,內(nèi)數(shù)據(jù)只是一個(gè)抽象表示,不代表其內(nèi)部真實(shí)數(shù)據(jù)結(jié)構(gòu)。即詞典,是根據(jù)條件查找的基本索引。 前言 Apache Lucene是一個(gè)開(kāi)源的高性能、可擴(kuò)展的信息檢索引擎,提供了強(qiáng)大的數(shù)據(jù)檢索能力。Lucene已經(jīng)發(fā)展了很多年,其功能越來(lái)越強(qiáng)大,架構(gòu)也越來(lái)越精細(xì)。它目前不僅僅能支持全文索引,也...
閱讀 3162·2021-11-22 14:45
閱讀 3311·2019-08-29 13:11
閱讀 2312·2019-08-29 12:31
閱讀 931·2019-08-29 11:21
閱讀 2999·2019-08-29 11:09
閱讀 3626·2019-08-28 18:11
閱讀 1429·2019-08-26 13:58
閱讀 1282·2019-08-26 13:27