2008-09-17 49 views
2

在我們的一個商業應用程序(Win32,用Delphi編寫)中,我們希望實現全文搜索。應用程序以某種不能直接識別爲文本的二進制格式存儲用戶數據。如何實現進程內全文搜索引擎

理想情況下,我想找到一個進程內解決方案(DLL將是好的)或我可以通過TCP(最好)訪問的本地服務器。 API應該允許我向服務器提交文本信息(以及表示它來自的二進制blob的元數據),當然,它應該允許我進行全文搜索,對邏輯運算符的支持最少和子串搜索。 Unicode支持是必需的。

我在堆棧溢出(What are some Search Servers out there?)上發現了大量搜索引擎,但我並不真正瞭解哪些引擎可以滿足我的需求。在我花費一兩天測試他們每一個之前,我想過徵求The Collective的意見。

有什麼建議嗎?

回答

1

市場上有很多選項。無論是完全商業化的產品還是開源的變體。您選擇的搜索服務提供商非常依賴您的目標客戶。

微軟有一個免費的快速版本的搜索服務器。據我所知,Express版僅限於在一臺服務器上運行應用層。

還有Apache Lucene項目是開源的。它有一個很好用的API和一個大型用戶社區。原來的項目是基於Java的,但也有其他implementations,如我個人使用的.NET的NLucene

0

我建議看看SQLite - 全文搜索包含在最新版本中。

0

我想答案取決於你的分貝。例如,如果需要,SQL Server具有全文搜索和英語語言查詢。

0

看看使用PostgreSQL和tsearch。

0

嘗試使用postgresql和tsearch

0

雖然沒有進行中,但Solr非常快(基於Lucene)並且可以從任何平臺(HTTP)輕鬆訪問