2009-04-10 5 views
5

Mi chiedo se qualcuno abbia qualche idea sul modo migliore per eseguire ricerche di parole chiave su Amazon SimpleDB da un'applicazione Asp.Net EC2.Il modo migliore per cercare le parole chiave Amazon SimpleDB utilizzando EC2 e Asp.Net?

A opzioni paio sto considerando sono:

1) Aggiungere una parola chiave per un attributo a più valori e cercare con una query del tipo: select id da keywordTable dove parola chiave = 'FirstWord' intersezione parola chiave = 'secondword' intersezione parola chiave = 'thirdword'

Amazon Query Example

2) Creare un frontend webservice a Katta:

Katta on EC2

3) Un servizio di aggiornamento Lucene.Net in coda che periodicamente invia l'indice Lucene al cloud. (Per aggirare il problema 'bloccaggio')

Load balance Lucene(StackOverflow post)

Lucene on S3 (blog post)

risposta

1

Solo per mettere in ordine questa domanda ... Siamo usciti utilizzando il provider SimpleDB di Lightspeed, Solr e SolrNet scrivendo un provider di ricerca personalizzato per Lightspeed.

Informazioni sull'attuazione interfaccia ISearchEngine per Lightspeed: http://www.mindscape.co.nz/blog/index.php/2009/02/25/lightspeed-writing-a-custom-search-engine/

E questa è la libreria Solr stiamo usando: http://code.google.com/p/solrnet/

Dal Solr può essere facilmente scalato con macchine EC2, questo ha reso più senso per noi.

1

Se siete alla ricerca di una soluzione strettamente SimpleDB (come per la questione come affermato) Katta e Lucene non vi aiuterà. Se stai cercando solo una soluzione basata su "infrastruttura Amazon", allora tutte le scelte funzioneranno.

Tutte e tre le opzioni differiscono in termini di quantità di configurazione e gestione che dovrete fare e decidere quale sia la migliore dipende dalle vostre reali esigenze.

SimpleDB con un attributo multivalore denominato Parola chiave è la scelta migliore se è necessaria la semplicità e l'amministrazione minima. E se non hai bisogno di ordinare per rilevanza. Non c'è nulla da configurare o amministrare e ti verrà addebitato solo per la tua cpu effettiva & larghezza di banda.

Lucene è un'ottima scelta se hai bisogno di più della ricerca per parole chiave, ma gestirai autonomamente gli aggiornamenti dell'indice. Dovrai anche gestire il bilanciamento del carico, i backup e il failover che avresti ottenuto con SimpleDB. Se non ti interessa il failover e puoi tollerare tempi morti mentre esegui un ripristino in caso di crash EC2, allora c'è una cosa in meno di cui preoccuparsi e un motivo in meno per preferire SimpleDB.

Con Katta su EC2 gestiresti tutto da solo. Avresti la massima flessibilità e il massimo lavoro da fare.

+0

grazie Mocky, sto cercando sempre di più di non implementare una soluzione SimpleDB strickly. È troppo limitato È sorprendente che non siano disponibili molte soluzioni di ricerca full-text su AWS. Soprattutto quando il sito web si basa sul bilanciamento del carico elastico. – josefresno

1

Simple Savant è una libreria di persistenza .NET open source per SimpleDB che include il supporto integrato per la ricerca full-text tramite Lucene.NET (sono il creatore di Simple Savant).

L'approccio di indicizzazione di testo completo è descritto here.