最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

袁庭新老師ES系列01節(jié)|全文檢索基本概念

2023-03-03 09:00 作者:袁庭新  | 我要投稿

前言

搜索給我們的生活帶來(lái)了一種新的獲取信息的方式,改變著我們的生活。而如何高效精準(zhǔn)查找信息?下面袁老師將帶你進(jìn)入搜索的世界,去一探究竟。

一. 數(shù)據(jù)分類

當(dāng)今信息爆炸的時(shí)代,信息每天都在以驚人的速度增長(zhǎng)。我們生活中的數(shù)據(jù)總體分為兩種:結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。

  • 結(jié)構(gòu)化數(shù)據(jù):指具有固定格式或有限長(zhǎng)度的數(shù)據(jù),如數(shù)據(jù)庫(kù)、 元數(shù)據(jù)等。針對(duì)結(jié)構(gòu)化數(shù)據(jù)的搜索,例如對(duì)數(shù)據(jù)庫(kù)的搜索、可以使用SQL語(yǔ)包。再如對(duì)元數(shù)據(jù)的搜索,例如Windows中對(duì)文件名類型和修改時(shí)間進(jìn)行搜索等。

  • 非結(jié)構(gòu)化數(shù)據(jù):指不定長(zhǎng)或無(wú)固定格式的數(shù)據(jù),如郵件、word文檔等磁盤(pán)上的文件。對(duì)非結(jié)構(gòu)化數(shù)據(jù)的搜索,例如Windows中對(duì)文件內(nèi)容的搜索、Linux中g(shù)rep命令,以及使用Google或百度來(lái)搜索內(nèi)容都屬于對(duì)全文數(shù)據(jù)的搜索。

通過(guò)調(diào)查發(fā)現(xiàn),在企業(yè)存儲(chǔ)的海量信息中,結(jié)構(gòu)化數(shù)據(jù)僅占數(shù)據(jù)信息總量的15%,而非結(jié)構(gòu)化數(shù)據(jù)卻占數(shù)據(jù)信息總量的85%。有序地存儲(chǔ)、管理并挖掘非結(jié)構(gòu)化數(shù)據(jù)的利用價(jià)值是目前全球一切成功企業(yè)提高競(jìng)爭(zhēng)力和生產(chǎn)力的主要手段。

二. 結(jié)構(gòu)化數(shù)據(jù)搜索

常見(jiàn)的結(jié)構(gòu)化數(shù)據(jù)也就是數(shù)據(jù)庫(kù)中的數(shù)據(jù)。在數(shù)據(jù)庫(kù)中搜索很容易實(shí)現(xiàn),通常都是使用SQL語(yǔ)句進(jìn)行查詢,而且能很快的得到查詢結(jié)果。

為什么數(shù)據(jù)庫(kù)搜索很容易?因?yàn)閿?shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)是有規(guī)律的,有行有列而且數(shù)據(jù)格式、數(shù)據(jù)長(zhǎng)度都是固定的。

三. 非結(jié)構(gòu)化數(shù)據(jù)查詢方法

1.順序掃描法

所謂順序掃描(Serial Scanning),比如要找內(nèi)容包含某一個(gè)字符串的文件,就是一個(gè)文檔一個(gè)文檔的看,對(duì)于每一個(gè)文檔從頭看到尾,如果此文檔包含此字符串,則此文檔為我們要找的文件,接著看下一個(gè)文件,直到掃描完所有的文件。如利用Windows的搜索也可以搜索文件內(nèi)容,只是相當(dāng)?shù)穆?/span>

假設(shè)你有一個(gè)100G硬盤(pán),如果想在上面找到一個(gè)內(nèi)容包含某字符串的文件,不花他幾個(gè)小時(shí),怕是做不到。Linux系統(tǒng)下的grep命令也是這一種方式。大家可能覺(jué)得這種方法比較原始,但對(duì)于小數(shù)據(jù)量的文件,這種方法還是最直接,最方便的。但是對(duì)于大量的文件,這種方法就很慢了。

2.全文檢索

2.1 檢索發(fā)展歷史

全文檢索是20世紀(jì)末產(chǎn)生的一種新的信息檢索技術(shù)。經(jīng)過(guò)幾十年的發(fā)展,特別是以計(jì)算機(jī)技術(shù)為代表的新一代信息技術(shù)應(yīng)用,使全文檢索從最初的字符串匹配和簡(jiǎn)單的布爾邏輯檢索技術(shù)演進(jìn)到能對(duì)超大文本、語(yǔ)音、圖像、活動(dòng)影像等非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行綜合管理的復(fù)合技術(shù)。

2.2 全文檢索介紹

全文檢索(Full-text Search)是指計(jì)算機(jī)索引程序通過(guò)掃描文章中的每一個(gè)詞,對(duì)每一個(gè)詞建立一個(gè)索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當(dāng)用戶查詢時(shí),檢索程序就根據(jù)事先建立的索引進(jìn)行查找,并將查找的結(jié)果反饋給用戶的檢索方法。這個(gè)過(guò)程類似于通過(guò)字典的目錄查字的過(guò)程。

將非結(jié)構(gòu)化數(shù)據(jù)中的一部分信息提取出來(lái),重新組織,使其變得有一定結(jié)構(gòu),然后對(duì)此有一定結(jié)構(gòu)的數(shù)據(jù)進(jìn)行搜索,從而達(dá)到搜索相對(duì)較快的目的。這部分從非結(jié)構(gòu)化數(shù)據(jù)中提取出的然后重新組織的信息,我們稱之索引。

例如字典。字典的拼音表和部首檢字表就相當(dāng)于字典的索引,對(duì)每一個(gè)字的解釋是非結(jié)構(gòu)化的, 如果字典沒(méi)有音節(jié)表和部首檢字表,在茫茫詞海中找一個(gè)字只能順序掃描。然而字的某些信息可以提取出來(lái)進(jìn)行結(jié)構(gòu)化處理,比如讀音就比較結(jié)構(gòu)化,分為聲母和韻母,分別只有幾種可以一一列舉,于是將讀音拿出來(lái)按一定的順序排列,每一項(xiàng)讀音都指向此字的詳細(xì)解釋的頁(yè)數(shù)。我們搜索時(shí)按結(jié)構(gòu)化的拼音搜到讀音,然后按其指向的頁(yè)數(shù),便可找到我們的非結(jié)構(gòu)化數(shù)據(jù)——也即對(duì)字的解釋。

這種先建立索引,再對(duì)索引進(jìn)行搜索的過(guò)程就叫全文檢索。雖然創(chuàng)建索引的過(guò)程也是非常耗時(shí)的,但是索引一旦創(chuàng)建就可以多次使用,全文檢索主要處理的是查詢,所以耗時(shí)間創(chuàng)建索引是值得的。

2.3 全文檢索構(gòu)成

全文檢索大體分兩個(gè)過(guò)程,索引創(chuàng)建(Indexing)和搜索索引(Search)。

索引創(chuàng)建:將現(xiàn)實(shí)世界中所有的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)提取信息,創(chuàng)建索引的過(guò)程。

搜索索引:就是得到用戶的查詢請(qǐng)求,搜索創(chuàng)建的索引,然后返回結(jié)果的過(guò)程。

于是全文檢索就存在三個(gè)重要問(wèn)題:

  • 索引結(jié)構(gòu)?(Index)

  • 如何創(chuàng)建索引?(Indexing)

  • 如何對(duì)索引進(jìn)行搜索?(Search)

下面我們順序?qū)γ總€(gè)問(wèn)題進(jìn)行研究。

四. 全文檢索原理

1.索引里面究竟存些什么

索引里面究竟需要存些什么呢?首先我們來(lái)看為什么順序掃描的速度慢。其實(shí)是由于我們想要搜索的信息和非結(jié)構(gòu)化數(shù)據(jù)中所存儲(chǔ)的信息不一致造成的。

非結(jié)構(gòu)化數(shù)據(jù)中所存儲(chǔ)的信息是每個(gè)文件包含哪些字符串,也即已知文件,欲求字符串相對(duì)容易,也即是從文件到字符串的映射。而我們想搜索的信息是哪些文件包含此字符串,也即已知字符串,欲求文件,也即從字符串到文件的映射。兩者恰恰相反。于是如果索引總能夠保存從字符串到文件的映射,則會(huì)大大提高搜索速度。由于從字符串到文件的映射是文件到字符串映射的反向過(guò)程,于是保存這種信息的索引稱為反向索引。

有人可能會(huì)說(shuō),全文檢索的確加快了搜索的速度,但是多了索引的過(guò)程,兩者加起來(lái)不一定比順序掃描快多少。的確,加上索引的過(guò)程,全文檢索不一定比順序掃描快,尤其是在數(shù)據(jù)量小的時(shí)候更是如此。而對(duì)一個(gè)很大量的數(shù)據(jù)創(chuàng)建索引也是一個(gè)很慢的過(guò)程。

然而兩者還是有區(qū)別的,順序掃描是每次都要掃描,而創(chuàng)建索引的過(guò)程僅僅需要一次,以后便是一勞永逸的了, 每次搜索,創(chuàng)建索引的過(guò)程不必經(jīng)過(guò),僅僅搜索創(chuàng)建好的索引就可以了。這也是全文搜索相對(duì)于順序掃描的優(yōu)勢(shì)之一:一次索引,多次使用。

2.如何創(chuàng)建索引

全文檢索的索引創(chuàng)建過(guò)程一般有以下幾步:

  • 一些要索引的原文檔(Document);

  • 將原文檔傳給分詞組件(Tokenize);

  • 將得到的詞元(Token)傳給語(yǔ)言處理組件(Linguistic Processor);

  • 將得到的詞(Term)傳給索引組件(Indexer)。

簡(jiǎn)而言之,先建立索引(Indexing),再根據(jù)索引進(jìn)行搜索(Search)。

五. 結(jié)語(yǔ)

本章節(jié)袁老師給大家介紹了數(shù)據(jù)的分類、結(jié)構(gòu)化數(shù)據(jù)搜索和非結(jié)構(gòu)化數(shù)據(jù)查詢方法,并且重點(diǎn)介紹了順序掃描法和全文檢索內(nèi)容。最后,我們探索了全文檢索的原理,知道了索引內(nèi)部存儲(chǔ)的結(jié)構(gòu),以及索引是如何被創(chuàng)建的。


袁庭新老師ES系列01節(jié)|全文檢索基本概念的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
镇沅| 长沙市| 邛崃市| 湘潭县| 卓资县| 昌黎县| 赤水市| 南漳县| 台东市| 泸水县| 安溪县| 綦江县| 朝阳市| 石渠县| 屏南县| 义马市| 宜章县| 监利县| 化州市| 德州市| 湛江市| 原阳县| 阳谷县| 铜鼓县| 台前县| 颍上县| 长宁区| 隆化县| 新建县| 蓬溪县| 康乐县| 襄垣县| 绥化市| 浑源县| 辉南县| 宿迁市| 无极县| 侯马市| 奈曼旗| 耿马| 嘉兴市|