Suggerimenti per la metodologia di ricerca richiesta

0

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).

    
posta coach_rob 05.01.2012 - 23:11
fonte

2 risposte

0

Sono un grande fan di Sfinge. È super veloce, supporta MSSQL ed è piuttosto facile da usare. Non sono sicuro dell'integrazione in C #, ma penso che ci siano esempi di utilizzo lì.

Nella tua configurazione hai appena configurato ciò che vuoi indicizzare (cioè tabelle e colonne). Quindi, quando esegui una ricerca, puoi cercare solo un singolo tipo di oggetto o attraverso tutti i tipi di oggetto.

Ci sono alcune opzioni per l'ordinamento e il filtraggio e anche per il rivestimento.

    
risposta data 05.01.2012 - 23:53
fonte
0

Sembra che tu abbia un problema di prestazioni. Questo può essere causato da molte cose. Per uno, stai eseguendo la query su diversi servizi web o direttamente attraverso il tuo database? Come è organizzato lo schema del database? Usi il database normalizzato o un tipo di schema a stella? E i tuoi indici? Come gestisci le informazioni opzionali (qualsiasi numero di letti e qualsiasi prezzo)? Ci sono molti fattori che potrebbero influenzare le prestazioni. Devi sedere con DBA ed esaminare le tue statistiche SQL e del piano e rivedere attentamente lo schema. Senza conoscere ulteriori dettagli sull'architettura e sugli altri punti specifici sopra menzionati, non è possibile formulare una raccomandazione (almeno questo è ciò che penso).

    
risposta data 06.01.2012 - 00:30
fonte

Leggi altre domande sui tag