1. 程式人生 > >【轉】幾種C/C++開發的開源搜尋引擎

【轉】幾種C/C++開發的開源搜尋引擎

(1)CLucene

CLucene是Lucene的一個C++埠,Lucene是一個基於java的高效能的全文搜尋引擎。CLucene因為使用C++編寫,所以理論上要比lucene快。

(2)Xapian

Xapian是一個用C++編寫的全文檢索程式,他的作用類似於Java的lucene。儘管在Java世界lucene已經是標準的全文檢索程式,但是C/C++世界並沒有相應的工具,而Xapian則填補了這個缺憾。

Xapian的api和檢索原理和lucene在很多方面都很相似,但是也有一些地方存在不同,具體請看Xapian自己的文件:http://www.xapian.org/docs/

Xapian除了提供原生的C++程式設計介面之外,還提供了Perl,PHP,Python和Ruby程式設計介面和相應的類庫,所以你可以直接從自己喜歡的指令碼程式語言當中使用Xapian

進行全文檢索了。

(3)DataparkSearch

DataparkSearch 搜尋引擎是一個 C 語言的全功能的開源基於Web的搜尋引擎,

支援來自 http, https, ftp, nntp, and news URLs, htdb virtual URL 的資料,內嵌支援資料庫、 text/html, text/xml, text/plain, audio/mpeg (MP3), and image/gif 等格式資料。

(4)PonySE

PonySE是一個高速的, 靈活的, 小型web搜尋引擎, 使用C/C++開發. PonySE的每一個模組都儘量獨立, 這意味著你可以單獨使用其中的一個你覺得有用的模組。

(5)FirteX

FirteX 是一個功能強大、高效能、靈活的全文索引和檢索平臺。 FirteX 的主要目標是研究文字索引的快速構建 (Index Construction) ,動態文件集的索引維護 (Index Maintenance) ,短語查詢 (Phrase Query),Top-k 查詢的快速處理 (Top-k Query Process) 以及各種檢索模型( IR Model )等。高效能和靈活的架構也使 FirteX 可以應用在產品搜尋,桌面搜尋,站內搜尋,新聞搜尋, Blog 搜尋,學術搜尋以及大規模搜尋引擎等領域中。

相關推薦

C/C++開發開源搜尋引擎

(1)CLucene CLucene是Lucene的一個C++埠,Lucene是一個基於java的高效能的全文搜尋引擎。CLucene因為使用C++編寫,所以理論上要比lucene快。 (2)Xapian Xapian是一個用C++編寫的全文檢索程式,他的作用類似於Java的lucene。儘管在Java世

小波閾值去噪程式

例1: load leleccum; index = 1:1024; x = leleccum(index); %產生噪聲訊號 init = 2055615866; randn('seed',init); nx = x + 18*randn(size(x)); %獲取消

cocos2dx 3.x C++搭建protobuf環境

person ccf binding csdn bind taf protoc -cp strlen http://blog.csdn.net/ganpengjin1/article/details/50964961 Cocos2dx 裏面在網絡遊戲通信這一塊一般我們都會采

值得學習的C語言開源項目和庫

播放 有關 生產 mys gpu計算 點雲 mysql ntc html5 - 1. Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的性能,最多可以模

Selenium - 封裝WebDrivers (C#)

from BE ive str 支持 asf res file pty 本文轉載自:http://www.cnblogs.com/qixue/p/3977135.html Web element仍然使用OpenQA.Selenium.IWebElement, 本類庫將Se

選型DubboRPC的選型比較

https://blog.csdn.net/liyanlei5858/article/details/77924407?utm_source=blogxgwz3   一、Dubbo通訊協議       第一、dubbo

VS2015編譯TensorFlow C++程式完全攻略

VS2015編譯TensorFlow C++程式完全攻略 原文地址:https://blog.csdn.net/jacke121/article/details/80473648 本文參考和綜合了多篇網路部落格文章,加以自己的實踐,最終終於在windows環境下,編譯出可以用於C++程式呼叫

vscode除錯執行c#詳細操作過程

 【轉】vscode除錯執行c#詳細操作過程 主要命令: //路徑跳轉cd  //新建專案dotnet new console -o 路徑    //執行dotnet run    //用於釋出exe<RuntimeIdentifie

如何為Apache JMeter開發插件(一)

選擇 ref 測試結果 沒有 通過 pri for entry state 本文轉載於http://blog.csdn.net/column/details/12925.html,作者:xreztento 作者寫的很精華,我打算在此系列操作一遍後,加多點截圖,便於更多人更快

: 《江湖X》開發筆談 - 熱更新框架

列表 ane lua 會有 數據文件 由於 嚴格 http服務 tex 前言 大家好,我們這期繼續借著我們工作室正在運營的在線遊戲《江湖X》來談一下熱更新機制以及我們的理解和解決方案。這裏先簡單的介紹一下熱更新的概念,熟悉這部分的朋友可以跳過,直接看我們的方案。 熱更新

CVHierarchy of Transformation的區別

Projective Transformation: 原本平行的線在對映之後不平行。 Affine Transformation: 保持直線對映成直線,且原先平行的線對映後還是平行。Affine 就是H這個transformational matrix的最後一行為0 0 1. Si

大企業的敏捷開發

如今敏捷開發已經成為初創企業的標配,如果運用得當,它能大幅提升企業的創新效率。然而在人數眾多、層級複雜的大企業,敏捷開發能實現麼? 誰說只有小企業才能敏捷開發?這5招讓大象也能跳舞 【2016-06-01 BCG波士頓諮詢】 導讀 許多行業的企

快速排序演算法以及快速排序的優化

一.  快速排序的基本思想 快速排序使用分治的思想,通過一趟排序將待排序列分割成兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小。之後分別對這兩部分記錄繼續進行排序,以達到整個序列有序的目的。 二.  快速排序的三個步驟 1) 選擇基準:在待排序列中,按照某種方式挑出一個元素,作為 “基準”(p

SpringBoot定時任務的實現方式

SpringBoot 幾種定時任務的實現方式 Wan QingHua 架構之路  定時任務實現的幾種方式: Timer:這是java自帶的java.util.Timer類,這個類允許你排程一個java.util.TimerTask任務。使用這種方式可以讓你的程

MATLAB特殊矩陣,Hilbert矩陣,Toeplitz矩陣,Vandermonde矩陣......

1、Hadamard矩陣Hadamard矩陣是由+1和-1元素構成的且滿足Hn*Hn’=nI(這裡Hn’為Hn的轉置,I為單位方陣)n階方陣。>> hadamard(4) ans = 1 1 1 1 1 -1

Linux常見的程序排程

程序的排程演算法 1.先來先服務排程演算法(FCFS:firstcome first service) 先來先服務(FCFS)排程演算法即可適用於作業排程,也可以適用於程序排程。當此演算法在作業排程中時,它每次選取一個或多個最先進入該佇列的作業,將它們調入記憶體

開源自動化測試疑難FAQWebDriver型別的元件的判斷

第一組就是對網頁彈出的提示資訊的判斷,也就是Dialog,對於等待時間的載入,這裡也可以用org.openqa.selenium.support.ui.WebDriverWait去實現,不過我這裡還是給出簡單的自定義的迴圈查詢。 /** * judge if th

方法讓你在I2C通信中同時和多個從機通信

efi 抖動 萬能 stop ans ole println tran 正常 ref:http://tieba.baidu.com/p/3769008030對於不同地址的模塊就不用多說了,直接分別對其地址進行通信即可。那麽若拿到相同地址的模塊,或者直接是相同的多個模塊怎麽辦

Java典型的記憶體溢位案例,全在這兒了!

## 寫在前面 > 作為程式設計師,多多少少都會遇到一些記憶體溢位的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程式設計師!哈哈,開個玩笑。今天,我們就以Java程式碼的方式來列舉幾個典型的記憶體溢位案例,希望大家在日常工作中,儘量避免寫這些low水平的程式碼。 ## 定義主

Java典型的記憶體溢位案例,都在這兒了!

## 寫在前面 > 作為程式設計師,多多少少都會遇到一些記憶體溢位的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程式設計師!哈哈,開個玩笑。今天,我們就以Java程式碼的方式來列舉幾個典型的記憶體溢位案例,希望大家在日常工作中,儘量避免寫這些low水平的程式碼。 ## 定義主