5

我想知道是否有人对从 EC2 Asp.Net 应用程序在 Amazon SimpleDB 上执行关键字搜索的最佳方式有任何想法。

我正在考虑的几个选择是:

1)将关键字添加到多值属性并使用以下查询进行搜索: select id from keywordTable where keyword ='firstword' intersection keyword='secondword' intersection keyword = 'thirdword'

亚马逊查询示例

2) 为 Katta 创建一个 Web 服务前端:

EC2 上的 Katta

3) 一个排队的 Lucene.Net 更新服务,定期将 Lucene 索引推送到云端。(解决“锁定”问题)

负载平衡 Lucene(StackOverflow 帖子)

S3 上的 Lucene(博客文章)

4

3 回答 3

1

如果您正在寻找严格的 SimpleDB 解决方案(根据所述问题),Katta 和 Lucene 不会帮助您。如果您只是在寻找基于“亚马逊基础设施”的解决方案,那么任何选择都可以。

这三个选项在您必须进行多少设置和管理方面有所不同,决定哪个最好取决于您的实际要求。

如果您需要简单性和最少的管理,具有名为 Keyword 的多值属性的 SimpleDB 是您的最佳选择。如果您不需要按相关性排序。无需设置或管理任何内容,您只需为实际的 CPU 和带宽付费。

如果您需要的不仅仅是关键字搜索,Lucene 是一个不错的选择,但您需要自己管理索引的更新。您还必须管理使用 SimpleDB 获得的负载平衡、备份和故障转移。如果您不关心故障转移,并且可以在 EC2 崩溃的情况下进行恢复时容忍停机时间,那么就少了一件需要担心的事情,也少了一个选择 SimpleDB 的理由。

使用 EC2 上的 Katta,您将自己管理一切。您将拥有最大的灵活性和最多的工作要做。

于 2009-06-01T15:33:11.560 回答
1

Simple Savant 是一个用于 SimpleDB 的开源 .NET 持久性库,其中包括对使用 Lucene.NET 的全文搜索的集成支持(我是 Simple Savant 的创建者)。

全文索引方法在此处描述。

于 2010-10-13T15:20:50.547 回答
1

只是为了整理这个问题......我们通过为 Lightspeed 编写自定义搜索提供程序来使用 Lightspeed 的 SimpleDB 提供程序、Solr 和 SolrNet。

为 Lightspeed 实现 ISearchEngine 接口的信息:http: //www.mindscape.co.nz/blog/index.php/2009/02/25/lightspeed-writing-a-custom-search-engine/

这是我们正在使用的 Solr 库: http ://code.google.com/p/solrnet/

由于 Solr 可以使用 EC2 机器轻松扩展,这对我们来说是最有意义的。

于 2010-09-28T17:42:05.050 回答