Creare un motore di ricerca con Google e ASP.NET

di , in UserScript, ASP.NET, DataBinding,

Inserire nel proprio sito un motore di ricerca che permetta di effettuare ricerche sia internamente che sul resto del web può essere un optional di indubbio valore per i nostri utenti.
Google fa al caso nostro perché ha messo a disposizione un web service che ci permette di fare ricerche e di gestire il risultato nel modo che vogliamo.
Di seguito un piccolo esempio per effettuare una ricerca sul web:

<%@ Page Language="vb" Debug="true" %>
<%@ Assembly Src="search.vb" %>
<%@ Import Namespace="System.Data" %>
<SCRIPT runat="server">
'costante indicante il numero di righe per pagina
private const righe=10
  
dim start_index as integer
  Dim query as String

private Sub Page_Load(byval sender as object,e as eventArgs)
  response.expires=0
  if ispostback then exit sub
  start_index=0
  bindResults
End sub
  
private Sub bindResults()
  dim s as new GoogleSearchService()
  dim r as GoogleSearchResult
  'query = Request("query")
  query = "ASPItalia.com"

  'richiamo il webservice - sostistuire key con la propria chiave
  r = s.doGoogleSearch("key",query,start_index*righe,righe,false ,"",false,"","","")
  
  trovati.Text = r.estimatedTotalResultsCount
  'se non ha prodotto alcuni risultato allora salta il resto
  if ubound(r.resultElements)=-1 then exit sub
  
  ' nuova datable con i risultati
  dim dt as new DataTable()
  dt.columns.Add("url")
  dt.columns.Add("title")
  dt.columns.Add("summary")
  dt.columns.Add("cache")
  dim i as byte
  dim riga as dataRow
  'informo il datagrid del totale degli item
  'visto che utilizzo una customPaging
  results.VirtualItemCount=r.estimatedTotalResultsCount
  
  ' popolo
  for i=0 to ubound(r.resultElements)-1
    riga=dt.NewRow
    riga("url")=r.resultElements(i).url
    riga("title")=r.resultElements(i).title
    riga("summary")=r.resultElements(i).snippet
    riga("cache")=r.resultElements(i).cachedSize
    dt.rows.add(riga)
  next i

    ' associazione dati e databinding
    results.dataSource=dt
    results.databind()
    'distruggo logicamente gli oggetti
    r=Nothing
    s=Nothing

End sub
  
private Sub changePage(sender as Object , e as DataGridPageChangedEventArgs)
  results.CurrentPageIndex=e.NewPageIndex
  start_index=e.NewPageIndex
  bindResults
End sub

</SCRIPT>
<form runat="server">
<p>Risultato della ricerca</p>
<p>Trovati <asp:literal id="trovati" runat="server"></asp:literal>
elementi corrispondenti alla parola di ricerca: <b><%=query%></b>


Pagina <%= (start_index+1) %> d <%= math.floor(trovati.text/righe) %>


cellspacing="0" border="0" width="100%"
autogeneratecolumns="false" OnPageIndexChanged="ChangePage"
showHeader="false" PagerStyle-Horizontalalign="right"
PagerStyle-CssClass="testo" PagerStyle-Mode="NumericPages"
Pagesize="<%# righe %>"
AllowPaging="true"
AllowCustomPaging="true">



" target="_blank"><%# Container.DataItem("title") %>

<%# Container.DataItem("summary") %>

 Dimensione cache: <%# Container.DataItem("cache") %>






In questo esempio richiamiamo la classe GoogleSearchService creata tramite wsdl.exe (oppure VS.net) e che è contenuta nel file search.vb, compilato dinamicamente con l?istruzione @Assembly.
Per usufruire del web service bisogna andare all'URL
http://www.google.it/apis/
e scaricare l?SDK contenente alcuni esempi in .NET e Java, creare un account per avere la key in modo da autenticarsi e usufruire del servizio.
Il tutto limitatamente a 1000 ricerche giornaliere.
La key è da inserire al primo paramentro delle funzioni del web service.
Il codice d'esempio è molto semplice e Google permette anche di prelevare la pagine che ha in cache oppure di usufruire della correzione delle parole (una specie di controllo dell'ortografia) e nelle funzioni è possibile passare molteplici parametri: il mio consiglio è solo quello di guardare la documentazione dell'SDK, che è di facile comprensione.

Per vedere all'opera questo esempio:
https://www.aspitalia.com/liste/usag/esempi.asp?ID=392

Per maggiori informazioni su web services con ASP.NET si veda:
https://www.aspitalia.com/articoli/aspplus/webservice.asp
https://www.aspitalia.com/articoli/aspplus/webserviceXML.asp
https://www.aspitalia.com/articoli/aspplus/wsautenticazione.asp

Commenti

Visualizza/aggiungi commenti

Creare un motore di ricerca con Google e ASP.NET (#392) 810 634
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi