2012-10-23 13 views
10

Ho un sito Web, tale contenuto (HTML) viene generato utilizzando ASP.NET C# da un database SQL Server.Creazione di una funzionalità di ricerca in ASP.NET

Ora voglio aggiungere una funzione di ricerca sul sito Web in modo che gli utenti possano cercare il contenuto. Verrà visualizzata una pagina dei risultati con i risultati.

Qual è il modo migliore per farlo?

+0

Altre soluzioni? – TeaDrinkingGeek

+0

Puoi farlo utilizzando la ricerca google personalizzata, i moduli commerciali esistenti, utilizzando l'indicizzazione sql, fino a rendere l'indicizzazione personalizzata. – Aristos

risposta

2
+0

Che ne dici se il sito web è ospitato presso un ISP su un server condiviso? Qual è la migliore alternativa? – TeaDrinkingGeek

+0

In tal caso, l'utilizzo della Ricerca personalizzata Google è la soluzione migliore. –

+0

Sono sorpreso che tu non abbia suggerito di scrivere una pagina di ricerca usando ASP.NET? – TeaDrinkingGeek

5

I 2 migliori soluzioni:

  • Google Custom Search (GCS)
  • SQL Server (manuale)

GCS:

Qui contare totalmente su Google. Se indicizzano la tua pagina web in 60 giorni, allora buona fortuna. Non troverai informazioni che non sono archiviate, pubblicamente come una pagina web. Pertanto, qualsiasi contenuto all'interno del login, dimenticalo.

Farai anche affidamento su Search Engine Optimization. se non ottimizzi i tuoi titoli di pagina, meta descrizioni ect, la ricerca non sarà di grande utilità.

personalizzato SQL Server:

Se si mette un indice completo sui vostri campi di dati, è possibile cercare le parole chiave. Questa è una soluzione decente, ma ricorda gli indici (altrimenti sarà molto lento).

Vorrei cercare "Ricerca full text di SQL Server" per assistenza su questa soluzione.

Il vantaggio è che si ha il pieno controllo e si può accedere a tutto.

EDIT:

Ci sono naturalmente molte altre soluzioni. Vorrei anche suggerire di esaminare Lucene o alcune implementazioni su Lucene come Solr. Tuttavia, tutte le funzionalità di ricerca sono in genere molto difficili e scadenti, da qui in avanti i miei primi due suggerimenti.

Nella società in cui lavoro in precedenza abbiamo utilizzato FAST e oggi utilizziamo Apptus.

EDIT 2:

Oggi vorrei consigli solo una soluzione: elasticsearch. È un'ottima soluzione; facile da lavorare; funziona su tutte le piattaforme; basato su una bella REST API e JSON e sta andando molto bene.

0

È un po 'difficile sapere in quale direzione preferisci andare avanti con la funzionalità di ricerca, e non sapere quali lingue preferisci/e stai usando bene sono ..

Quindi, che ne dici di qualcosa di semplice? e usare la ricerca ospitata?

Questo sito qui, gratuitamente, indicizza fino a 1000 e si ottiene anche tutti i tipi di rapporti. Sembra che tu debba semplicemente aggiungere del semplice codice HTML nel tuo sito per far funzionare tutto.

è anche possibile reindicizzare su richiesta e impostare un programma per farlo per voi. Non c'è bisogno di aspettare per Google ..

Il sito è Site Level

+0

Grazie per il suggerimento alternativo di cercare. Mi avventurerò e dare un'occhiata. – TeaDrinkingGeek

1

Le tue pagine sono generate da database SQL. Penso che sia sicuro assumere che i dati rilevanti si trovano anche nel DB SQL piuttosto che nei modelli asp o nel codice C#. Per cercare quei dati è possibile scrivere più query sul database, in base alla funzione contains("search term").

È possibile eseguire una ricerca semplice che esegua tutte quelle query e che disponga anche di ricerca avanzata in cui è possibile fornire caselle di controllo in base alle query da eseguire per perfezionare la ricerca.

Sarebbe più sensato che fare una ricerca raw sui contenuti generati, imo.

+0

Questo approccio, sebbene tecnicamente fattibile, tende a produrre risultati sfavorevoli perché la gente non pensa in termini così concreti. Inseriscono un termine di ricerca e si aspettano varianti e tali da essere considerati. Quello che ottieni è una ricerca di cui le persone fanno costantemente il bum. I reclami vanno come "Ho cercato per 'escursioni' ma non mostri nessuna pagina con 'escursione' al suo interno" - tutte quelle piccole varianti che contengono proprio non colpiscono. Alla fine, è meglio usare una ricerca full-text o una ricerca google personalizzata, come hanno detto altri commentatori. – Michael

0

utilizzare Google Search

* Se possibile è possibile utilizzare Sharepoint per sviluppo di siti web e di ricerca è già lì per ogni sito web.

1

Se si utilizza il SOL DB Prova Attivare il proprio codice per la casella di ricerca in esso. Per esempio Sto creando un portale video, sto cercando video dalla mia stessa casella di ricerca utilizzando il seguente codice,

<script type="text/javascript"> 
    $(document).ready(function() { 
     SearchText(); 
    }); 
    function SearchText() { 
     $(".autosuggest").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "Home.aspx/GetAutoCompleteData", 
        data: "{'username':'" + document.getElementById('txtSearch').value + "'}", 
        dataType: "json", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert("Error"); 
        } 
       }); 
      } 
     }); 
    } 

    $(".autosuggest").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Home.aspx/GetAutoCompleteData", 
       data: "{'username':'" + document.getElementById('txtSearch').value + "'}", 
       dataType: "json", 
       success: function (data) { 
        response(data.d); 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
     } 
    }); 
</script> 

    /// <summary> 
    /// To AutoSearch. . . 
    /// </summary> 
    /// <param name="userName"></param> 
    /// <returns></returns> 
    public List<string> GetAutoComplete(string userName) 
    { 
     List<string> lstStr = new List<string>(); 
     sqlCon = new SqlConnection(strCon); 
     sqlCmd=new SqlCommand("select DISTINCT OldFileName from UploadedVideo where OldFileName LIKE '%'[email protected]+'%'", sqlCon); 
     sqlCon.Open(); 
     sqlCmd.Parameters.AddWithValue("@SearchText",userName); 
     SqlDataReader reader=null; 
     reader = sqlCmd.ExecuteReader(); 
     while(reader.Read()) 
     { 
      lstStr.Add(reader["OldFileName"].ToString()); 
     } 
     return lstStr; 
    } 

Ho creato un box auto completa. La cosa principale qui è che possiamo usare il nostro codice. . .

0

Se il contenuto è archiviato nel database SQL ed è necessario cercarlo all'interno di tale DB, è necessario un qualche tipo di generatore di query. Ci sono alcuni di loro sul mercato. Riesco a ricordare Aspose Query e EasyQuery ma troverete di più se google per "query builder asp.net" o qualcosa di simile.

Problemi correlati