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