的Xapian是一個開源概率信息檢索庫,在GPL下發布。 Xapian的ISS C語言編寫的,與綁定允許從其他語言的使用(Perl中,使用Java,Python,PHP和TCL目前支持;狡詐和C#正在上工作)。
Xapian的設計是一個高度適應性的工具包,使開發人員能夠輕鬆地先進的索引和搜索功能添加到自己的應用程序。
如果你對你的網站打包的搜索引擎之後,你應該看一看歐米茄,這是我們提供建立在Xapian的應用程序。但是,與大多數其他網站的搜索解決方案,Xapian的的多功能性使您能夠擴展歐米茄,以滿足您的,因為他們成長的需要
特點:
- < LI>自由軟件/開源 - 根據GPL許可
- 在高度便攜 - 運行在許多Linux,MacOS X的,很多其他Unix平台和Microsoft Windows 。
- 在用C語言編寫。 Perl綁定在模塊搜索:: Xapian的CPAN上可用。爪哇JNI綁定都包含在的Xapian-綁定模塊。我們也支持SWIG可以生成13種語言綁定。在為Python,PHP4和TCL目前這些工作。狡詐和C#正在研發中。
- 在排名probablistic搜索 - 重要的話得到比不重要的話更有分量,因此最相關的文檔更容易走近的結果列表的頂部 。
- 在相關反饋 - 給定的一個或多個文檔,Xapian的可以建議最相關的指標方面,擴大查詢,建議相關文件,文檔分類等 。
- 在短語和鄰近搜索 - 用戶可以搜索詞存在的在一個確切的短語或單詞指定數量的範圍內,無論是在指定的順序,或以任何順序
- 在全系列結構化布爾搜索操作符(&QUOT;股票不能市場化和QUOT;,等)。布爾搜索的結果是由probablistic權重排名。布爾濾波器還可以應用於以限制一個概率搜索。
- 在支持所產生的搜索詞(如搜索和QUOT;足球&QUOT;將匹配該提&QUOT文件;足球&QUOT;或&QUOT;足球和QUOT;)。這有助於找到可能被遺漏的相關文件。詞幹目前包括了丹麥語,荷蘭語,英語,芬蘭語,法語,德語,意大利語,挪威語,葡萄牙語,俄語,西班牙語和瑞典語。
- 在支持的數據庫文件&GT; 2GB - 用於擴展到大型文檔集合必不可少
- 在獨立於平台的數據格式 - 你可以在一台機器上建立一個數據庫和搜索它的另一個
- 在允許同時更新和搜索。新文件成為搜索的時候了。
- 在提供可以索引HTML,PHP,PDF,PostScript和純文本的索引。加入支持索引等格式很容易在那裡轉換濾鏡可供選擇(如Microsoft Word)中。該工程索引使用備案制度,但我們也提供了一個腳本,讓了htdig網絡爬蟲被勾住,允許使用歐米茄搜索遠程站點。
- 您可以從Perl DBI模塊支持的任何SQL或其他RDBMS也索引數據。這包括MySQL和PostgreSQL,SQLite的時,Sybase,MS SQL,LDAP和ODBC。
- 在CGI的搜索前端提供具有高度可定制的外觀。這也可以定制,以輸出結果以XML或CSV,如果你是動態生成的頁面是有用的(如使用PHP或mod_perl的),只是想,你可以在自己的頁面佈局代碼處理原始的搜索結果。
<李類=“bbli”>除了圖書館,我們提供了一些小例子程序,和一個更大的應用程序 - 一個索引和基於CGI的應用程序調用的ω:
什麼在此版本中是新的:
- 在該版本修復了一些小錯誤,並增加了一些新功能。
什麼是1.2.4版本,新的:
- 在這個版本增加了一個API,用於合併和壓縮數據庫,使得許多改進歐米茄,包括新的SWIG為基礎的Perl綁定,並修復了一些內存洩漏的Python綁定。
什麼是1.0.22版本的新:
- 在該版本修復了幾個小錯誤,提高了便攜性。
什麼是1.0.21版本的新:
- 在Xapian的核心API:
- 的Xapian ::幹現在可以識別&QUOT; NB&QUOT;和&QUOT; NN&QUOT;作為額外的代碼為挪威詞幹。
- 的Xapian :: QueryParser的現在可以正確地解析一個通配符長期在其他兩屆(門票#484)之間。
- 在匹配器:
- 在OP_OR可以跳過匹配的文件,如果它腐爛的比賽在某些情況下,期間OP_AND或OP_AND_MAYBE。修復票#476。
- OP_XOR與非葉子查詢可以跳過匹配文檔在某些情況下,以及三個或三個以上的子查詢OP_XOR可以返回不正確的權重。修復票#475。
- 在OP_OR現在更有效的,如果一個子查詢可能是昂貴的(如OP_VALUE_RANGE,OP_NEAR,OP_PHRASE,PostingSource)。有10倍的加速與OP_VALUE_RANGE已經觀察到。
- 在構建系統:
- 在安裝文件進行的Xapian更容易cmake的使用。
- 在便攜性:
- 在x86處理器,現在的Xapian默認使用SSE2浮點指令。這避免問題過多精度和有點快了。如果你需要支持的處理器沒有SSE2(這意味著前期的Pentium4英特爾),然後用--disable-SSE配置。 (門票#387)
什麼在1.0.18版本是新的:
- 在QueryParser的:
- 在提高其使用Unicode封閉標誌,結合空格標記字符的語言,如緬甸的支持。
- 在弗林特後端:
- 在更新時的文件,不更新發布這並沒有改變(門票#250)的條目。
- 修正鎖定代碼,如果標準輸入和/或標準輸出已關閉工作。
什麼在1.0.13版本是新的:
- 在API:
- 的Xapian ::文檔不再是以往任何時候都明確地存儲空值。這不是故意的行為,這種情況下是如何處理並沒有記錄在案。修訂後的行為是多麼的用戶的元數據的處理是一致的。這種變化是無法觀測使用文件::的get_value(),但文件迭代:: values_begin(當使用文檔:: values_count(),或試圖刪除文件與()的值:: remove_value可以看到)。
- 在測試套件:
- 當用-O0編譯在x86修復測試用例scaleweight4不許失敗。問題是在測試用例的代碼,並在中間FP值超出精度造成的。
- 在測試用例其中檢查經營有預期的O(...)的行為沒有檢查CPU的時間,而不是時鐘時間在大多數平台上,這應該消除偶發故障是由於從其他進程加載峰值。
- (門票#308)
- 修正測試失敗是由於SKIP_TEST_FOR_BACKEND(&QUOT;的inmemory&QUOT;)不跳過當它應該因為與==比較字符的字符串(主幹的返回值被測試為std :: string的,而不是為const char *)。 LI>
- 在提高一些角落情況下的測試覆蓋率。
- 修正測試用例consistency2實際運行(幸運傳遞)。
- 在生成測試用例,調用get_description()每個類的默認構造的對象上,以確保工程(並且不試圖取消引用NULL,還是失敗的一些說法,等)。目前,所有檢查類都很好 - 這是為了避免將來的回歸,或這種問題,新的類 。
- 在測試覆蓋率構建,使用&QUOT; - 覆蓋範圍和QUOT;而不是&QUOT; -fprofile-弧-ftest覆蓋&QUOT;
- 在測試工具目前擁有的inmemory後端標記為支持用戶指定的元數據(除了迭代元數據鍵)。
- 匹配:
- 如果查詢包含一個子查詢MatchAll,檢查其他條款之前檢查它,這樣它檢查了多少項比賽可以提前如果他們都匹配退出循環。
- 當OR或ANY_MAYBE衰減到一個與我們進行了認真交換孩子們的最大效率,但條件是相反的,所以我們實際上是使事情變得更糟。這是發現,因為它是導致相同的查詢運行速度更快,當被要求更多的結果!
- 在只有建立重建它的每一個的termname到termfreq和重量的地圖為第一子數據庫代替。也不要複製此地圖退貨。這應該加快搜索了一下,特別是那些在多個數據庫。
- 如果一個submatcher失敗,但的ErrorHandler告訴我們繼續沒有它,我們只需要使用一個NULL指針站在而不是分配一個特殊的虛擬佔位對象。
- 刪除AndPostList,有利於MultiAndPostList的。 AndPostList才被用作衰變產物(由AndMaybePostList和OrPostList),並且不會出現任何更快。刪除它降低了CPU緩存的壓力,少維護的代碼。
- 而不是skip_to()上AND_MAYBE的可選分支呼叫檢查()。
- 在火石後端:
- 修正)在TermIterator錯誤:: skip_to(在元數據鍵。
- 在遠程後台:
- 修正的Xapian-tcpsrv --interface選擇工作在MacOS X(門票#373)。
- 這使我們返回的最大重量從遠程匹配的文檔可以返回的文檔ID而不是修復錯字!這與遠程後台檢索多個數據庫時,可能會導致錯誤的結果,但可能平時沒有關係與BM25權重一般都比較小(通常都&#x3c 1),而docids是不可避免的&#x3e = 1 。
- 的inmemory後端:
- 在該的inmemory後台不支持循環訪問元數據鍵。試圖這樣做用來給一個空的迭代,但現在已經固定拋出
- 在UnimplementedError(這個限制已經被記錄在案)。
- 在構建系統:
- 刪除未使用的很多頭夾雜物和一些未使用的代碼,應該構建速度更快,稍微小一些。
- 修正下 - 禁用後端的火石, - 禁用後端的遙控器,和 - 禁用後端-的inmemory編譯。
- 請不要刪除&QUOT任何內置光源;使清潔&QUOT;即使在--make-維護者模式的打破交換樹遠離維護者-模式:使distclean命令; ./配置
- 在配置:啟用多個GCC警告 - &QUOT; -Woverloaded虛擬&QUOT;對於所有版本,與QUOT; -Wstrict空哨兵&QUOT;為4.0+,&QUOT; -Wlogical運-Wmissing-聲明&QUOT;為4.3+。值得注意的是&QUOT; -Wmissing-聲明&QUOT;抓住這consistency2是沒有運行。
- 在內部,解決了價值,我們通過STD的幾個地方::字符串以const引用傳遞,而不是(除非我們需要修改副本反正)為基準顯示,const引用是稍快,並產生更少的代碼與GCC的參考計算的std ::字符串實現 - 與非引用計數的實現,const引用要快很多。 (門票#140)
- 文檔:
- 安裝:我們不再定期測試建立與GCC 2.95.4我們正在籌集所需的3.1 Xapian的1.1.x的最低GCC版本
- 在文檔傳遞什麼maxitems = 0後提問:: get_mset()一樣。
- 在文檔/ queryparser.html:添加使用的一個短語或子表達式前綴的例子 。
- 在用戶的元數據功能,正確的doxygen註釋:數據庫:: get_metadata()拋出UnimplementedError但WritableDatabase :: set_metadata()即可
- 在文檔的數據庫:: metadata_keys_begin()返回結束迭代器,如果後台不支持元數據。
- 在黑客入侵:更新所需要的開發環境的Debian / Ubuntu的軟件包列表
- 在調試代碼:
- 修正建立與--enable-調試。
- 在增加了一些更多的斷言。
什麼是1.0.11版本的新:
- 在該版本修正了幾個錯誤,並增加了支持,歐米茄用於索引的MS Office 2007格式和XPS文件。
什麼是1.0.10版本的新:
- 在該版本修正了數據庫損壞,如果一個可能的情況下,磁盤已滿,而寫出來的變化。
- 在該鎖文件的火石數據庫目前正在使用的umask設置創建的。
- 在此之前,這是不可能打開一個火石數據庫更新,如果它是由其他用戶所擁有,甚至通過&QUOT足夠的權限;組&QUOT;或QUOT;其他&QUOT;
- 在撰寫與兩個非長遠子查詢的OP_NEAR查詢現在拋出UnimplementedError代替的AssertionError。
什麼是新的版本1.0.9:
- 在拼寫校正現在甚至更快。 (15%的速度上升進行測量。)
- 在基於x86的Linux過剩引起的精度兩個錯誤已被修正。
- 在查詢:: MatchAll現在給予同等的權重,以所有文件。
- 在壓縮時的拼寫表已定崩潰。
- 在該copydatabase比如現在拷貝用戶的元數據了。
- 在歐米加CGI二進制現在捕獲和報告的std ::例外。
評論沒有發現