2008-09-17 10 views
2

商用アプリケーション(Win32、Delphiで書かれています)では、フルテキスト検索を実装したいと考えています。アプリケーションは、テキストとして直接認識できない何らかのバイナリ形式でユーザーデータを格納しています。インプロセス全文検索エンジンの実装方法

理想的には、インプロセスソリューション(DLLは問題ありません)またはTCPを介してアクセスできるローカルサーバー(好ましくは)を探したいと思います。 APIは、(それが出たバイナリBLOBを表すメタデータと共に)サーバにテキスト情報を提出できるようにしなければなりません。もちろん、少なくとも論理演算子のサポートを最低限に抑えて全文検索を行うことができます部分文字列検索。 Unicodeのサポートが必要です。

Stack Overflow(What are some Search Servers out there?)に検索エンジンが豊富に見つかりましたが、私のニーズを満たすエンジンがどれか分かりません。私は1日か2日それぞれのテストに費やす前にThe Collectiveに意見を求めることを考えました。

提案がありますか?

答えて

1

ではPostgreSQLを使用してみてください。商用製品またはオープンソースのバリアントを完全に統合してください。検索プロバイダの選択は、ターゲットとする顧客に大きく依存します。

マイクロソフトは、検索サーバーの無料高速版を提供しています。私が知る限り、Express Editionは1つのサーバー上でアプリケーション層を実行することに限定されています。

オープンソースのApache Luceneプロジェクトもあります。これは使いやすいAPIと多数のユーザーコミュニティを持っています。元のプロジェクトはJavaをベースにしていますが、私が個人的に使ったNLucene for .NETのようなimplementationsもあります。

0

私はSQLiteを見てみることをお勧めします - フルテキスト検索は最新バージョンに含まれています。

0

回答はあなたのデータベースに依存していると思います。たとえば、SQL Serverにはフルテキスト検索と、必要に応じて英語のクエリがあります。

0

PostgreSQLとtsearchの使い方を見てください。

0

は、市場で多くのオプションがありますtsearch

0

Sphinxはおそらく最も効率的でスケーラブルなオプションですが、SQLite - FTS3は最も簡単なオプションです。

0

Solrは非常に高速で(Luceneベース)、どのプラットフォーム(HTTP)でも簡単にアクセスできます