Sto lanciando questa domanda alla "maggiore creatività" per alcuni suggerimenti sulla metodologia di ricerca che potrebbero risolvere questo problema. Ho trovato un esempio un po 'forzato per tentare di spiegare il problema abbastanza bene che alcune soluzioni potrebbero essere raccomandate.
Il problema: stiamo utilizzando un DB relazionale (MSSQL) e dobbiamo cercare tra prodotti con i seguenti vincoli:
- Disponibilità
- Market
- Prezzo
Abbiamo anche bisogno di raggruppare e ordinare il roll-up dei prezzi, del mercato e delle entità più grandi.
Fammi vedere se riesco a spiegare usando entità semi-reali del mondo: pensa a un'applicazione che consente agli utenti di cercare camere d'albergo che possono prenotare. I seguenti criteri potrebbero essere disponibili per la ricerca: giorni in cui le camere sarebbero prenotate, il mercato in cui desiderano una camera d'albergo (ad es. NYC, Boston), servizi che la camera (e) dell'hotel potrebbe avere (vasca idromassaggio, camino , numero di letti, suite o meno)
In tutti i casi, i criteri di ricerca sopra possono o non possono essere selezionati. Quindi, una ricerca molto ampia è possibile (in queste date, non mi interessa quale mercato), o variando i livelli di specificità (a New York, 2 letti, con camino).
Per aggiungere complessità, dobbiamo anche restituire i prezzi delle camere d'albergo per i criteri selezionati. Ovviamente, prezzi speciali, prezzi diversi per i diversi giorni del soggiorno (un prezzo il giovedì sera e un prezzo diverso il venerdì e il sabato sera per un soggiorno nel fine settimana).
Alcune delle cose con cui abbiamo giocato sono: Solr, Endeca, query SQL, implementazione nel codice C # e ottimizzazione quando / dove necessario (pensate al modello di decoratore).
Quello che sto cercando qui sono alcuni suggerimenti della community su: quale dei precedenti NON è adatto a questo problema, che potrebbe essere adatto per questo problema, che altre tecnologie potrebbero funzionare meglio che non abbiamo pensato circa, tecniche che altri hanno utilizzato su problemi simili che hanno funzionato bene (non specifici della tecnologia).