我正在处理一个邮件列表存档,我的任务是设置基本搜索、布尔搜索以及最终某种更智能的基于标签的搜索。
我看到了商业产品和一些开源项目(如 Lucene.NET)
有没有其他人做过类似的工作?
我现在在 Win2k3 服务器上工作,所以立即想到的是使用 ASP Classic 或 ASP.NET。但是,如果有另一个平台可以更好地达到这个目的,那么我也会考虑。我不会因此而扔掉一些东西;)
我正在处理一个邮件列表存档,我的任务是设置基本搜索、布尔搜索以及最终某种更智能的基于标签的搜索。
我看到了商业产品和一些开源项目(如 Lucene.NET)
有没有其他人做过类似的工作?
我现在在 Win2k3 服务器上工作,所以立即想到的是使用 ASP Classic 或 ASP.NET。但是,如果有另一个平台可以更好地达到这个目的,那么我也会考虑。我不会因此而扔掉一些东西;)
首先,你应该考虑你需要什么。
如果你还没有,你应该检查你的数据是什么样子的。也许是“mbox”格式(一个文件与邮件纯文本连接)“maildir”(一个包含许多文件的目录,每个文件包含一封邮件),还是其他?
设置搜索引擎意味着考虑如何准备数据:
mouse
的概念的匹配;或和,取决于您的邮件列表的主题。mice
rats
cursor
pointing device
还要想想:
然后比较您喜欢的产品(商业或开源)它们已经提供了多少以及您必须自己编写什么。请注意,提供搜索体验不仅仅是下载搜索引擎并投入大量数据。
由于您正在设置邮件搜索,您将需要两件事:搜索引擎和数据库。有许多搜索引擎可以提供您需要的内容。
他们提供高级搜索工具,如关键字、字段限制搜索、布尔查询、短语搜索等。这是另一篇关于各种文本搜索引擎的 SO 帖子:全文搜索引擎的比较 - Lucene、Sphinx、Postgresql、MySQL?
Sphinx 和 Solr 的搜索速度非常快。Sphinx 进行完整的数据库搜索,也进行部分索引。Solr 使用基于索引的搜索,并且具有几乎线性的性能可扩展。
第二个最重要的选择是存储邮件的数据库。邮件将采用某种格式(模式),例如表格中的字段。不使用任何格式是很疯狂的。这不是文件搜索,对吧?一些搜索引擎需要特定的数据库才能工作。Sphinx 仅使用 SQL 数据库,Solr 可以与 noSQL 数据库集成。
如果您不担心扩展问题(您有成千上万的用户,拥有 GB 的数据,需要实时性能),那么您可以使用 SQL 数据库。否则,您将不得不在 Solr 中使用 noSQL 数据库。
SQL 数据库(如 PostgreSQL)使用起来最简单,可以做您需要的事情,并且需要最少的设置/工作。连接器将允许您将查询(邮件搜索)从浏览器发送到您的数据库。
你还说你使用 Win2k3,你必须切换到 linux 发行版才能利用这些搜索引擎。Win2k3 很慢,不能提供与 linux 发行版相媲美的性能。