2009-02-18 14 views
21

posso immaginare molti modi di implemeting funzionalità di ricerca in un'applicazione ASP.NET MVC, ma dal momento che non riesco a trovare molta documentazione Mi chiedevo se avete qualche modello comune, la tecnologia o approccio comune per implementare funzionalità di ricerca in un'applicazione ASP.NET MVC (simile a StackOverflow). Alcune tecnologie che ho in mente sono:Come implementare funzioni di ricerca in applicazioni ASP.NET MVC

    ricerca full-text
  • motore di ricerca esterno
  • SQL Server (come Search Server 2008)
  • Lucene.NET

... ma cosa è l'approccio migliore per integrarli con ASP.NET MVC?

Idee?

risposta

2

Credo in uno dei suoi post sul blog Jeff Atwood parla di come ha usato sitemaps per consentire a google di gestire la maggior parte delle funzionalità di ricerca sullo stack overflow. Perché scrivere i propri algoritmi di ricerca quando le persone sono probabilmente solo andando a utilizzare Google in ogni caso?

5

Non è del tutto chiaro che cosa si sta chiedendo esplicitamente, ma, in generale:

  1. Scrivi un aiutante vista o una vista parziale che restituisce un modulo di ricerca. Chiamalo all'interno delle tue altre pagine ovunque sia necessario per visualizzare una casella di ricerca. Rendi l'azione del modulo OTTIENI, non POST.
  2. Per la ricerca di un sito, probabilmente vorrai avere un controller di ricerca. Per cercare all'interno di un particolare tipo di dati, è possibile aggiungere un'azione a un controller esistente o un argomento a un'azione esistente. Per la maggior parte, l'unica cosa che dobbiamo aggiungere è un argomento dell'azione "Elenco" di uso generale per un tipo di dati specifico. Il modulo di ricerca chiama "Elenco" e imposta un argomento con la stringa della query di ricerca.
  3. La ricerca attuale è fatto all'interno del vostro repository. Questa è l'unica parte dell'applicazione che sa di cose come SQL Server o Lucene. Per casi insignificanti, un controllore può aggiungere un .Dispetto a un IQueryable <T> restituito da un repository.
Problemi correlati