我想知道是否有人有任何想法的最好的方式来执行关键字搜索亚马逊SimpleDB从EC2 Asp.Net应用程序。
我正在考虑的几个选择是:
1)向多值属性添加关键字,并使用如下查询进行搜索: select id from keywordTable where keyword ='firstword‘交叉点关键字=’search‘交叉点关键字= 'thirdword’
Amazon Query Example
2)创建Katta的webservice前端:
Katta on EC2
3)排队的Lucene.Net更新服务,定期将Lucene索引推送到云中。(绕过“锁定”问题)
Load balance Lucene(StackOverflow post)
Lucene on S3 (blog post)
发布于 2010-09-29 01:42:05
只是为了整理一下这个问题。通过为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机器轻松扩展,因此这对我们来说是最有意义的。
发布于 2009-06-01 15:33:12
如果您正在寻找一个严格的SimpleDB解决方案(根据问题所述),Katta和Lucene将不会帮助您。如果你只是在寻找一个基于“亚马逊基础设施”的解决方案,那么任何一种选择都可以。
这三个选项的不同之处在于,您必须进行多少设置和管理,以及根据您的实际需求来决定哪一个是最好的。
如果您需要简单性和最少的管理,具有名为关键字的多值属性的SimpleDB是您的最佳选择。如果你不需要按相关性排序。没有什么需要设置或管理的,你只需要为实际的cpu和带宽付费。
如果您需要的不仅仅是关键字搜索,Lucene是一个很好的选择,但您需要自己管理索引的更新。您还必须管理负载平衡、备份和故障转移,这些都是使用SimpleDB时需要完成的。如果您不关心故障转移,并且可以容忍在EC2崩溃的情况下执行恢复时的停机时间,那么这就少了一件需要担心的事情,也就少了一个选择SimpleDB的理由。
有了EC2上的Katta,你就可以自己管理一切了。你会有最大的灵活性和最多的工作要做。
发布于 2010-10-13 23:20:51
Simple Savant是一个用于SimpleDB的开源.NET持久化库,它集成了对使用Lucene.NET进行全文搜索的支持(我是Simple Savant的创建者)。
here描述了全文索引方法。
https://stackoverflow.com/questions/738634
复制相似问题