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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码

發(fā)布時間:2025/3/20 php 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JavaScript 上萬關(guān)鍵字瞬間匹配實現(xiàn)代碼

更新時間:2013年07月07日 23:36:21 ? 作者:

發(fā)一篇之前寫的文章,平時還是經(jīng)常用到的,尤其是河蟹詞特別多的聊天系統(tǒng)里

提到關(guān)鍵字搜索,首先聯(lián)想到的無非就是使用一些indexOf,replace之類的字符函數(shù),最多加上一些正則表達式而已.實現(xiàn)起來雖然很簡單,但是這背后的效率問題可曾仔細考慮過?例如論壇中的關(guān)鍵字過濾,一般情況下需過濾的關(guān)鍵字?jǐn)?shù)量及檢測的文本長度都不大,所以這一瞬間的過程沒有太多值得關(guān)注的地方。但若關(guān)鍵字?jǐn)?shù)量不在是屈指可數(shù),而是有成千上萬, 并且待檢測的文本也是一長篇大論,結(jié)果可不再是那么樂觀了。大家都知道,每多一個關(guān)鍵字,就要增加一次全文的檢索,最終花費的時間將遠遠超出可接受的范圍內(nèi)。

既然考慮的是那種極端的關(guān)鍵字搜索,通常的逐個遍歷搜索顯然是行不通的。如今用的是JavaScript,若不使用Hash表實在是太對不起這門語言了。有著對表特天獨厚的支持,不妨就拿出少量的空間來換取大量的時間吧。

先看個例子,比如有如下的關(guān)鍵字: foo1,foo2,bar1,bar2,既然要用空間換時間,因此搜索之前先將他們預(yù)處理。前面提到了JS靈活又高效的表,顯而易見,使用樹的結(jié)構(gòu)是最有優(yōu)勢的。即使不明白,也沒關(guān)系,最終實現(xiàn)結(jié)構(gòu)正如如下的代碼,熟悉JSON同樣很親切:

var Root =

{

f:

{

o:

{

o:

{

: true,

: true

}

}

},

b:

{

a:

{

r:

{

: true,

: true

}

}

}

};

這一層層的結(jié)構(gòu)正如一棵樹,每個字符便是樹的一個分枝,到了最后一個字符便是樹葉,不再有新的節(jié)點。

此時你應(yīng)該明白了,只要對文章的每個字沿著這棵樹往下搜就是了。能到達樹葉的,就說明當(dāng)前字符就是關(guān)鍵字的一個;中途尋找不到對應(yīng)枝干的,當(dāng)然就不是關(guān)鍵字。

例如foo1,順著Root結(jié)構(gòu)向下訪問,最終到達Root['f']['o']['o']['1'],即完成了一次匹配。之后跳過foo1的長度,繼續(xù)往后檢索。

因此,整篇文章只需一次檢索,即可找出每個關(guān)鍵字的位置。

由于JS的hash表性能非常高,所以所謂的尋找枝干也就非常的快了。因為JS的靈活性,實現(xiàn)此效果的代碼同樣很簡短。

事實上可以發(fā)現(xiàn),關(guān)鍵字的數(shù)量與搜索的時間并沒太多的關(guān)系,那僅僅影響了樹的寬度而已,只有文章的長度才是決定搜索的時間。

來一次極限測試:

關(guān)鍵字: 成語全集(19830條)

內(nèi)容:誅仙全集.txt (1659219字)

用時:935ms

(Chrome26 / i3-2312的CPU)

160萬字的文章,匹配2萬個關(guān)鍵字,還不到1秒的時間。可見,充分利用JavaScript的靈活性,仍能發(fā)揮很大的潛力。

相關(guān)文章

仿服務(wù)器端腳本方式的JS模板實現(xiàn)方法...2007-04-04

本文主要分享一篇關(guān)于Html A標(biāo)簽中href和onclick用法、區(qū)別、優(yōu)先級別,具有很好的參考價值,有需要了解的朋友可以看看2017-01-01

這篇文章主要為大家詳細介紹了Bootstrap基本插件學(xué)習(xí)筆記之折疊的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12

這篇文章主要介紹了ES6學(xué)習(xí)筆記之Set和Map數(shù)據(jù)結(jié)構(gòu),結(jié)合實例形式詳細分析了ECMAScript中基本數(shù)據(jù)結(jié)構(gòu)Set和Map的常用屬性與方法的功能、用法及相關(guān)注意事項,需要的朋友可以參考下2017-04-04

這篇文章主要介紹了使用Javascript實現(xiàn)圖片加載從模糊到清晰顯示的方法,通俗易懂,需要的朋友可以參考下。2016-06-06

函數(shù)是js世界的一等公民,js的動態(tài)性、易變性在函數(shù)的應(yīng)用上,體現(xiàn)的淋漓盡致。下面這篇文章主要給大家介紹了關(guān)于JavaScript學(xué)習(xí)筆記之惰性函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-08-08

最近接了個項目,其中有項目需求是這樣的,需要復(fù)制內(nèi)容到剪切板,因為有眾多瀏覽器,所以兼容性很重要,下面通過本文給大家介紹Javascript復(fù)制實例詳解,對js復(fù)制相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-01-01

這篇文章主要介紹了React 元素渲染的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07

impress.js 是國外一位開發(fā)者受 Prezi 啟發(fā),采用 CSS3 與 JavaScript 語言完成的一個可供開發(fā)者使用的表現(xiàn)層框架(演示工具)。感興趣的朋友跟著小編一起學(xué)習(xí)吧2015-09-09

這篇文章主要介紹了Javascript中arguments用法,實例分析了javascript利用arguments實現(xiàn)模擬重載功能,需要的朋友可以參考下2015-06-06

最新評論

總結(jié)

以上是生活随笔為你收集整理的php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月激情片 | 国产精品黄视频 | 日韩九九九 | 一区二区男女 | 北条麻妃在线一区二区 | 日美女逼逼 | 日韩精品v| 亚洲自偷自偷偷色无码中文 | 国产极品美女在线 | 99免费在线观看视频 | 九色综合网 | 国产一级淫| 一区二区久久精品66国产精品 | 国产精品国产一区二区三区四区 | 少妇精品久久久一区二区三区 | 正在播放超嫩在线播放 | 国产日日干 | 夜夜高潮夜夜爽国产伦精品 | 久久这里只有精品久久 | 加勒比精品在线 | 在线观看一区二区三区四区 | 国产男女视频在线观看 | 丝袜美腿亚洲一区二区图片 | 91福利专区| 久操视频免费 | 在线中文字日产幕 | 国产青草| 精品爆乳一区二区三区 | 99久久婷婷 | 69视频在线 | 亚洲最新在线视频 | 麻豆自拍视频 | 美国一级大黄一片免费中文 | 97精品人妻一区二区三区香蕉 | 国产在线观看免费av | 欧美激情在线看 | 中文字幕永久视频 | 日韩3区| 黄色在线免费看 | 亚洲精品国产精华液 | 好色婷婷 | 黄色小说在线视频 | 原创露脸88av | 少妇搡bbbb搡bbb搡澳门 | 国语对白做受按摩的注意事项 | 久久精品欧美一区二区三区麻豆 | 草碰在线| 三级黄色在线 | 黄色网址中文字幕 | 播放美国生活大片 | 99亚洲欲妇 | 97国产视频 | 蜜臀av免费一区二区三区水牛 | 女同动漫免费观看高清完整版在线观看 | 三浦惠理子aⅴ一二三区 | 婷婷av一区二区三区 | 久久高清av| 无人码人妻一区二区三区免费 | 国产三级精品在线观看 | 久草天堂 | 国产极品福利 | 麻豆精品国产传媒av绿帽社 | 欧美一区二区影院 | 在线观看9.1 | 亚洲欧美日韩在线 | av青草 | 亚洲一区美女 | 中文字幕3页 | 国产一区二区精品丝袜 | 无遮挡av | 三日本三级少妇三级99 | 黄色片18 | 日韩一级欧美一级 | 欧美成人三级伦在线观看 | 丰满人妻一区二区三区性色 | 视频在线91| 高清不卡一区二区三区 | 成年黄色片| 色一情一交一乱一区二区三区 | 欧美 亚洲 另类 偷偷 自拍 | 日韩av在线播放不卡 | 啪视频免费| 亚洲欧美另类日韩 | 欧美激情视频网址 | 欧美视频免费在线 | 欧美私人情侣网站 | 五月激情综合婷婷 | 亚洲69 | 日韩一级黄 | 日本一级大毛片a一 | 色婷婷av777| 欧美第二区 | 激情欧美一区二区 | 欧美日韩黄色一级片 | 日剧网 | 一本色道久久88亚洲精品综合 | 黑人玩弄人妻一区二 | 久久青青草视频 | 国产一二视频 |