2

在我们的一个商业应用程序(Win32,用 Delphi 编写)中,我们希望实现全文搜索。该应用程序以某种无法直接识别为文本的二进制格式存储用户数据。

理想情况下,我想找到一个进程内解决方案(DLL 可以)或我可以通过 TCP 访问的本地服务器(最好)。API 应该允许我向服务器提交文本信息(以及表示它来自的二进制 blob 的元数据),当然,它应该允许我进行全文搜索,至少对逻辑运算符的支持最少和子字符串搜索。需要 Unicode 支持。

我在 Stack Overflow 上找到了广泛的搜索引擎列表(有哪些搜索服务器?),但我并不真正了解哪些引擎可以满足我的需求。在我花一两天时间测试他们每个人之前,我想征求 The Collective 的意见。

有什么建议么?

4

7 回答 7

1

市场上有很多选择。完全成熟的商业产品或开源变体。您对搜索提供商的选择在很大程度上取决于您的目标客户。

Microsoft 有一个免费的 Express 版本的 Search Server。据我所知,Express 版仅限于在一台服务器上运行应用程序层。

还有开源的Apache Lucene项目。它有一个很好用的 API 和一个庞大的用户社区。最初的项目是基于 Java 的,但也有其他的实现,例如我个人使用的NLucene for .NET。

于 2008-09-17T15:37:46.110 回答
0

我建议看一下 SQLite——全文搜索包含在最新版本中。

于 2008-09-17T15:27:38.253 回答
0

我想答案取决于你的数据库。例如,SQL Server 具有全文搜索功能,如果需要,还可以提供英语语言查询。

于 2008-09-17T15:30:31.320 回答
0

看看使用 PostgreSQL 和 tsearch。

于 2008-09-17T15:35:01.513 回答
0

尝试使用带有 tsearch 的 postgresql

于 2008-09-17T15:35:30.840 回答
0

Sphinx可能是最高效和可扩展的选项,而SQLite - FTS3是最直接的选项。

于 2008-09-17T16:26:25.023 回答
0

虽然不在进程中,但Solr非常快(基于 Lucene)并且可以从任何平台(HTTP)轻松访问

于 2008-09-29T16:14:52.530 回答