域名注冊
- 中文域名
- 英文域名
- 通用網(wǎng)址
- 域名解析
- 域名轉(zhuǎn)入\轉(zhuǎn)出
虛擬主機
- 主機購買
- 管理主機
- FTP上傳
- 數(shù)據(jù)庫管理1)注冊競價服務(wù)賬號
2)繳納競價服務(wù)推廣費用
3)開通服務(wù)
4)開始推廣
- 主機續(xù)費升級
網(wǎng)站建設(shè)
- 建站流程介紹
- 網(wǎng)站設(shè)計
- 網(wǎng)站改版
- 網(wǎng)站維護
- 網(wǎng)站推廣
企業(yè)郵局
- 郵箱使用
- 管理郵箱
- 郵箱續(xù)費升級
- 全球郵局
網(wǎng)站優(yōu)化
- seo優(yōu)化
- seo技巧
- 收索引擎優(yōu)化
- 關(guān)鍵詞優(yōu)化
網(wǎng)站備案
服務(wù)器租用
其它服務(wù)
- 400電話
- 在線客服
- 財務(wù)常見問題
- 會員常見問題
搜索引擎:利用Xapian構(gòu)建自己的搜索引擎
- 作者:曾小姐 文章來源:成都網(wǎng)站營銷 點擊數(shù):1463 更新時間:2009-10-15
-
今天會更大家說到一個新名詞Xapian,什么是Xapian呢?
不用著急,我們先來看看Xapian與開源
Xapian的官方網(wǎng)站是http://www.xapian.org,這是一個非常優(yōu)秀的開源搜索引擎項目,百度搜索引擎其實只是一個通俗的說法,正式的說法其實是IR(InformationRetrieval)系統(tǒng)。Xapian的License是GPL,這意味著允許使用者自由地修改其源碼并發(fā)布之。Xapian的中文資料非常少,可以說現(xiàn)在互聯(lián)網(wǎng)上連一篇完整詳細的Xapian中文介紹文檔,更別說中文API文檔了。但其實,Xapian的英文資料也不多,除了官方網(wǎng)站上的Docs和Wiki外,還有一些網(wǎng)站上的郵件列表,在這方面跟Lucene沒得比。當然,Lucene現(xiàn)在已經(jīng)發(fā)展到2.x版本了,而Xapian的最新版本才1.012,國外開源項目一般對版本號控制得比較嚴格,一個項目一般到了1.x才算穩(wěn)定和成熟的。
疑問:Xapian可以運行在那些平臺?
Xapian由C++編寫,但可以綁定到Perl,Python,PHP,Java,Tcl,C#和Ruby甚至更多的語言,Xapian可以說是STL編程的典范,在這里您可以找到熟悉的引用計數(shù)型智能指針、容器和迭代器,甚至連命名也跟STL相似,相信一定能引起喜好C++和STL的你的共鳴(實際上,很少C++程序員完全不使用STL)。由于Xapian使用的是STL和C運行時庫,因此具有高度可移值性,官方說法是可以運行在Linux、MacOSX、FreeBSD、NetBSD、OpenBSD、Solaris,、HP-UX,、Tru64和IRIX,,甚至其它的Unix平臺,在MicrosoftWindows上也跑得很好。當然,并不能像Java那樣“一次編譯,到處可以運行”,當移植到其它平臺時,一般來說是需要重新編譯的。
接著,我們來說說Xapian的特性
依官方的說法,Xapian是一個允許開發(fā)人員輕易地添加高級索引和搜索功能到他們的應(yīng)用系統(tǒng)的高度可修改的工具,它在支持概率論檢索模型的同時也支持布爾型操作查詢集。
從功能特性上來說。Xapian和Lucene有點相似,兩者都具有Term、Value(在Lucene里稱為SortField)、Posting、Position和Document,不過Xapian沒有Field的概念,這直接導致Xapian在使用上比Lucene麻煩了那么一點。但這完全不是問題,通過一些小技巧,完全可以自己在Xapian中實現(xiàn)Filed的概念。在Lucene里還有一個叫Payload的元素,即詞條(Term)的元數(shù)據(jù)或稱載荷。舉一個例子,“回家吃飯吧”和“快回家吃飯”這兩個句子都帶有“吃飯”這個詞語,但在檢索的時候怎樣才能將語氣表達出來呢?雖然可以添加Term來解決這個問題,但由于Term的索引信息和存儲信息是分開放的,相對來說I/O性能較差,Payload就是應(yīng)這個問題而生的,因為Payload信息是直接放在索引里的。由于對Xapian的研究還不是很深,Xapian里是否有類似Payload這個概念,還需要繼續(xù)研究。
次之,我們來看看Xapian與搜索的關(guān)系
搜索的目的是將結(jié)果數(shù)據(jù)展現(xiàn)給終端用戶,搜索引擎與普通的數(shù)據(jù)庫查詢最大的區(qū)別就在于查詢。Xapian提供了多種的查詢機制。
概率性搜索優(yōu)化排名–重要的詞語會比不那么重要的詞語得到更多的權(quán)重,因此與權(quán)重高的詞語關(guān)聯(lián)的Documents會排到結(jié)果列表的更前面。
相關(guān)度反饋–通過給予一個或多個Documents,Xapian可以顯示最相關(guān)的Terms以便擴展一個Query,及顯示最相關(guān)的Documents。
詞組和鄰近搜索--用戶可以搜索一個精確短語或指定數(shù)組的詞組。
全方位的布爾型搜索器,例如("stockNOTmarket",etc)。
支持提取搜索關(guān)鍵字的詞干,例如當搜索“football”的時候,當Documents中含有"footballs"或"footballer"的時候也被認作符合。這有助于找到相關(guān)結(jié)果,否則可能錯過之。詞干提取器現(xiàn)在支持Danish、Dutch、English、Finnish、French、German、Hungarian、Italian、Norwegian、Portuguese、Romanian、Russian、Spanish、Swedish和Turkish。
支持通配符查詢,例如“xap*”。
支持別名查詢,打個比方,C++會自動轉(zhuǎn)為CPlusPlus,C#則自動轉(zhuǎn)為CSharp。
Xapian支持拼寫糾正,例如xapian會被糾正為xapain,當然這必須基于詞組已經(jīng)被索引了。這特性跟Google提供的“你是不是想搜索xxx”有點相似。
這里又要說到一個概念Xapian的存儲系統(tǒng)
Xapian現(xiàn)在的版本默認是使用flint作為存儲系統(tǒng),flint是以塊的形式來存儲,默認每塊是8K,理論上每一個文件最大可以達到2048GB。當然,在舊式的文件系統(tǒng),例如FAT/FAT32是不可能實現(xiàn)的。熟悉Windows內(nèi)存管理機制的朋友一定知道使用Windows32位系統(tǒng)每個進程的總虛擬地址空間只有4GB,而用戶模式連2GB都不夠(Windows2003可以將用戶模式擴展到3GB左右),因此應(yīng)用程序不可能一次過將整個Database文件讀取到內(nèi)存中,通常的做法是使用內(nèi)存映射文件,先預(yù)訂地址空間,在真正使用的時候才調(diào)撥內(nèi)存,而內(nèi)存分頁粒度是4k,也就是說內(nèi)存中每一頁是4k,而在IA64系統(tǒng)中,內(nèi)存分頁粒度是8k。在內(nèi)存中,除了頁外,還有區(qū)塊,X86和IA64的內(nèi)存區(qū)塊的粒度都是64k。Xapian這樣存儲數(shù)據(jù)估計是為了在各個平臺上都能實現(xiàn)數(shù)據(jù)對齊,數(shù)據(jù)對齊對于cpu運算尋址是非常重要的,而8和64都是4的倍數(shù),因此大膽猜想Xapian以8k作為存儲系統(tǒng)的默認塊大小是為了在性能和兼容性中取得最平衡和最優(yōu)值。
Xapian使用unsigned32-bitints作為Documents的id值,因此在每個Xapian的Database中,最多可容納40億個Documents。而Xapian的Terms和Documents都是使用B-樹來存儲的,其實很多數(shù)據(jù)庫系統(tǒng)(這里所指的是關(guān)系數(shù)據(jù)庫)的索引都是用B-樹或B+樹來存儲的,具有增刪改查比較方便迅速的特點,缺點則是如果索引被刪除后的空間不能重復(fù)利用,為了提高性能,通常要經(jīng)常重建索引。
那么,Xapian的性能怎么樣呢?
搜索引擎的性能是用戶非常關(guān)心的一部分,Xapian的性能如何?
官方的原話如下:Theshortansweris"verywell"-apreviousversionofthesoftwarepoweredBrightStation'
sWebtopsearchengine,whichofferedasearchoveraround500millionwebpages(around1.5terabytesofdatabasefiles).
Searchestooklessthanasecond。
翻譯過來的意思就是:在5億個網(wǎng)頁共1.5TB大小的文件中,搜索只需要小于一秒就完事了。當然,這跟運行的平臺和機器是密切相關(guān),在我們自己構(gòu)建好Xapian搜索引擎應(yīng)用后,我們也可以測測具體的速度。
最后,我們來說說Xapian的絕佳范例
Xapian的官方網(wǎng)站上有一個絕佳的使用范例,這個稱為Omega的項目甚至可以開箱即用作為一個CGI應(yīng)用程序。Omega附帶了Omindex和ScriptIndex這兩個索引生成工具,可以將硬盤上的html,pdf,圖片甚至視頻影片索引起來并生成Database,通過操作這些由Omindex或ScriptIndex生成的Database,Omega提供了搜索這些文件的功能。
總結(jié),在使用Xapian的過程中,小編一般是先查閱http://www.xapian.org/docs/上的Doc、APIDoc和Wiki,遇到困難時則再查閱Omega的源代碼并互相印證之。實在沒辦法的時候只能從Google上找找一些網(wǎng)站的郵件列表,可以說是磕磕碰碰地將Xapian的大部分功能玩了一遍。但是有一些專有名詞小編雖然知道大概意思,但無法準確地翻譯出來,因此《利用Xapian構(gòu)建自己的搜索引擎》這篇文章的內(nèi)容可能會錯漏百出。不過如果這篇文章可以對大家有所幫助的話,它所得到的批評才是它最大的價值。創(chuàng)新互聯(lián)的小編將繼續(xù)為大家發(fā)掘更多更好地建站知識。
- 上一篇文章:網(wǎng)站建設(shè)應(yīng)該避免的錯誤
下一篇文章:跳出率和退出率詳解
優(yōu)化電話:028-86922220 13518219792 公司地址:成都市太升南路288號錦天國際A幢1002號
支持信箱:service@cdxwcx.com 版權(quán)所有:創(chuàng)新互聯(lián)-供最優(yōu)勢的搜索引擎排名優(yōu)化 蜀ICP備13010860號
創(chuàng)新互聯(lián)成都網(wǎng)絡(luò)公司:成都網(wǎng)站推廣,內(nèi)容頁排名推廣,成都網(wǎng)站建設(shè),成都網(wǎng)頁制作,成都網(wǎng)頁設(shè)計,更新網(wǎng)站內(nèi)容
日韩国产精品激情一区|
91免费精品国自产拍偷拍|
亚洲视频一区自拍偷拍另类|
福利专区 久久精品午夜|
日韩中文高清在线专区|
夫妻性生活真人动作视频|
成人精品一级特黄大片|
色无极东京热男人的天堂|
国产又粗又猛又长又大|
久久香蕉综合网精品视频|
四十女人口红哪个色好看|
国产在线视频好看不卡|
婷婷激情五月天丁香社区|
久久国产精品亚州精品毛片|
四季精品人妻av一区二区三区|
国产又大又黄又粗又免费|
亚洲国产欧美精品久久|
91麻豆精品欧美一区|
日韩特级黄色大片在线观看|
亚洲一区二区三区三区|
日本丁香婷婷欧美激情|
亚洲一级在线免费观看|
av一区二区三区天堂|
国产一区二区三区口爆在线|
欧美色婷婷综合狠狠爱|
黄色片一区二区在线观看|
国产一区二区在线免费|
亚洲欧洲成人精品香蕉网|
99久久人妻中文字幕|
老司机精品在线你懂的|
欧美精品久久男人的天堂|
国产一级一片内射视频在线|
欧美人妻少妇精品久久性色
|
国产精品一区二区有码|
日本不卡视频在线观看|
亚洲天堂精品一区二区|
人妻乱近亲奸中文字幕|
中文字幕人妻日本一区二区|
99久久成人精品国产免费|
夜夜躁狠狠躁日日躁视频黑人|
日本大学生精油按摩在线观看|