2009-04-10 13 views
5

Me pregunto si alguien tiene alguna idea sobre la mejor manera de realizar búsquedas de palabras clave en Amazon SimpleDB desde una aplicación EC2 Asp.Net.¿La mejor manera de buscar palabras clave Amazon SimpleDB usando EC2 y Asp.Net?

A opciones par que estoy considerando son:

1) añadir palabras clave a un atributo de valores múltiples y la búsqueda con una consulta como: seleccione ID de keywordTable donde la palabra clave = 'FirstWord' palabra clave intersección = 'secondword' cruce de palabras clave = 'thirdword'

Amazon Query Example

2) Crear una interfaz de servicio web a Katta:

Katta on EC2

3) Un servicio de actualización Lucene.Net en cola que periódicamente empuja el índice de Lucene a la nube. (Para obtener en torno al tema 'bloqueo')

Load balance Lucene(StackOverflow post)

Lucene on S3 (blog post)

Respuesta

1

Sólo para poner en orden esta pregunta ... Acabamos utilizando SimpleDB proveedor de Lightspeed, Solr y SolrNet escribiendo un proveedor de búsqueda personalizada para Lightspeed.

Información sobre la implementación de la interfaz ISearchEngine de Lightspeed: http://www.mindscape.co.nz/blog/index.php/2009/02/25/lightspeed-writing-a-custom-search-engine/

y esta es la Biblioteca Solr estamos utilizando: http://code.google.com/p/solrnet/

Desde Solr se puede escalar fácilmente usando máquinas EC2, esto tiene más sentido a nos.

1

Si usted está buscando una solución estrictamente SimpleDB (según la pregunta como se ha dicho) Katta y Lucene no le ayudará. Si está buscando simplemente una solución basada en la 'infraestructura de Amazon', entonces cualquiera de las opciones funcionará.

Los tres opciones difieren en cuanto a la cantidad de configuración y administración que tendrá que hacer y decidir cuál es la mejor depende de sus necesidades reales.

SimpleDB con un atributo llamado de palabras clave de varios valores es su mejor opción si necesita simplicidad y administración mínima. Y si no necesita ordenar por relevancia. No hay nada que configurar o administrar y solo se le cobrará por el ancho de banda real de su CPU &.

Lucene es una gran opción si usted necesita más de búsqueda de palabras clave, pero se le han administrar actualizaciones en el índice usted mismo. También tendrá que administrar el equilibrio de carga, las copias de seguridad y el fail over que hubiera obtenido con SimpleDB. Si no le importa la conmutación por error y puede tolerar un tiempo de inactividad mientras realiza una restauración en el caso de que EC2 falle, entonces esa es una cuestión menos de qué preocuparse y una razón menos para preferir SimpleDB.

Con Katta en EC2 administrarías todo tú mismo. Tendría la mayor flexibilidad y el mayor trabajo por hacer.

+0

gracias Mocky, cada vez estoy más interesado en no implementar una estricta solución SimpleDB. Es muy limitado. Es sorprendente que no haya muchas soluciones de búsqueda de texto completo disponibles en AWS. Especialmente cuando el sitio web tiene equilibrio de carga elástico. – josefresno

1

Savant simple es una biblioteca .NET persistencia de código abierto para SimpleDB que incluye soporte integrado para la búsqueda de texto completo usando Lucene.NET (soy el creador Savant simple).

El enfoque de indización de texto completo se describe here.

Cuestiones relacionadas