2010-02-19 70 views
0

我有一個現在由PHP cronjob提供的Solr框。是否有C++ SOLR庫?

我想加快速度並通過切換到C++進程來節省一些內存。

我不想通過創建一個新庫來重新發明輪子。

唯一的問題是我無法在C++中找到Solr的庫。

否則,我將不得不使用CURL創建一個。

你們有沒有人知道用C++編寫的Solr之間的庫?

謝謝。

回答

0

「喂」你的意思是文件通過索引?您可能會發現,「餵養」過程並非瓶頸,而是Solr能夠多快吸收文檔。

在做大量工作之前,我還建議您進行一些分析,因爲這個過程通常不是CPU綁定的,所以通過移動到C++會提高速度會讓人失望。

+0

一些早期的結果後,Solr的似乎是瓶頸!任何解決方案?我應該切換到CLucene(似乎不再被維護) – stunti 2010-02-19 10:49:09

+0

很多時候切換到C或C++並不能提供您可能期望的速度提升。檢查Solr文檔是否加快速度。想到的第一件事是在單個中提交多個 leonm 2010-02-19 11:17:35

0

您是否儘可能優化了您的架構?兩個明顯的第一步是: 1.不要存儲不需要顯示的數據(字段ID和元數據等) ...和與之相反的... 2.不要索引數據僅用於顯示,但未搜索。 (補充數據)

還有一個古怪的事情可以嘗試,有時可行,有時不會將add/overwrite屬性更改爲false。

<add overwrite="false"> 

這將禁用唯一ID檢查(我認爲)。因此,如果您正在對索引進行全面擦除/替換,並且您肯定只會添加唯一文檔,那麼這可以加快導入速度。它確實取決於索引的大小。如果您有超過2,000,000份文檔,並且索引器每次添加一個新文檔,您都可以通過不強制檢查文檔是否已經存在來獲得一些速度。不是最有說服力的解釋,但我希望它是有道理的。

就我個人而言,我使用數據導入處理程序,它刪除了中間腳本的需要。它只是連接到數據庫,並通過單個查詢將其所需的信息剔除。