日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搜索引擎背后的原理和中文日志检索

發布時間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搜索引擎背后的原理和中文日志检索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 日志服務支持的兩種搜索方式 通過設置分詞字符(通常是標點符號),把一段文本劃分成不同的單詞。分詞字符只能是單字節ascii字符這種方式適合于切分英文單詞。這種方式對于中文日志,必須要搜索中文語句整體。

點此查看原文:http://click.aliyun.com/m/42944/

搜索引擎背后的原理和日志檢索

當我們在搜索引擎搜索一個詞的時候,背后是上千臺機器在為我們工作。那么搜索引擎是如何從數萬億的網頁中瞬間查找到我們想要的詞的呢?這里要介紹一個概念叫倒排索引。

倒排索引

倒排索引指的是,把文檔拆分成一個個單詞,每個單詞指向包含該單詞的文檔ID。在查詢時,根據關鍵字,找到包含該關鍵字的文檔ID列表。再根據ID讀取具體的數據。

以英文為例,下面是要被索引的文本:

T0 = "it is what it is"T1 = "what is it"T2 = "it is a banana"

我們就能得到下面的反向文件索引:

"a": {2}"banana": {2}"is": {0, 1, 2}"it": {0, 1, 2}"what": {0, 1}

查詢what這個詞時,我們找到了0,1這兩個ID,然后知道了T0和T1這兩個文檔包含what這個詞。

由上文的介紹可知,創建倒排索引的關鍵在于分詞。對于英文和中文,分詞方式又有區別。

英文分詞

英文語句,每個單詞之間有標點符號分割,因此我們把標點符號設置為分詞字符,標點符號之間的字符串即為一個單詞。

例如語句

it is what it is.what is it?it is a banana!

如果分詞字符是空格和. ? ! 那么能夠得到的單詞依次是it,is,what,it,is,what,is,it,it,is,a,banana

如果分詞字符是空格和.? 不包含! 那么能夠得到的單詞依次是it,is,what,it,is,what,is,it,it,is,a,banana!

我們得到banana!這樣一個特殊的詞,在查詢時如果查詢banana是無結果的,比如查詢banana!才行

配置分詞字符,請在查詢分析屬性中配置:

中文分詞

中文分詞的困難

中文語句不同于英文語句,英文的每個單詞之間有標點符號分割,中文的單詞和單詞之間是連接在一起的。中文單個字沒有意義,只有和相鄰的字組成詞匯時,才有意義。例如語句:

中國是一個偉大的國家,中國共產黨是一個偉大的政黨

每個字表達的含義沒有意義,只有組合成詞匯,才能理解其中的含義。中文博大精深,不同的字有不同的組合方式,在不同的語境下,詞的長度也不一樣。人類能夠快速的分析出這句話所包含的詞:

中國 是 一個 偉大 的 國家 中國共產黨 是 一個 偉大 的 政黨

兩句話中的中國,在前一句中是單獨一個詞,在后一句中要和之后的共產黨組成一個詞。

中英文混合日志

針對包含中文的日志,例如debug message:登錄成功號是中文冒號,配置的分詞字符是空格。如果只采用分詞字符的方式分詞,那么得到的詞有:

debug message:登錄成功

無法單獨搜索登錄或成功,只有完整輸入message:登錄成功才能搜索到日志。

智能化中文分詞

為了解決中文的分詞問題,我們引入了智能化的分詞算法。

如果日志中包含中文,那么需要打開開關,引入智能化分詞,才能夠搜索中文單詞。

打開后中文開關后,我們分別可以查詢debug,message,登錄,成功。

中文搜索效果:

總結

以上是生活随笔為你收集整理的搜索引擎背后的原理和中文日志检索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。