Usare Index Search per cercare con ASP.NET

by enrico 29. July 2008 00:28

Non vi siete mai chiesti a cosa serve Microsoft Index Search e come poterlo utilizzare nel vostri siti web? Io questa domanda me la sono posta e ho trovato un interessante utilizzo di questa funzionalità. Sostanzialmente Index Search indicizza un disco o una cartella specifica del vostro server e ne crea un catalogo che è possibile interrogare e trovare quindi tutti i documenti che state ricercando.

Come si fa ad implementare una soluzione?
Semplicissimo! Dal server aprire Gestione computer dal Pannello di controllo | Strumenti di amministrazione. Sotto il menu Servizi e applicazioni, aprire Servizi di indicizzazione. Per creare intanto un catalogo dai nostri documenti che potranno essere ricercati dalla nostra applicazione web, cliccare il tasto destro e scegliere Nuovo | Catalogo. Compare quindi una finestra nel quale inserire il nome del catalogo ed il percorso da indicizzare. Salvando questi dati sotto Servizi di indicizzazione si visualizzerà il nome del nuovo catalogo (nel caso dell'immagine qui a fianco Intranet). Fin da subito è possibile vedere nel catalogo due cartelle di nome Directory e Proprietà e un file asp del nome Cerca nel catalogo. Ovviamente è necessario un po' di tempo affinché i file presenti nella cartella scelta siano indicizzati completamente.

Utilizzo del catalogo
Creare una pagina ASPX nel quale inserire il seguente codice:

    <table id="Table3" cellspacing="1" cellpadding="1" width="95%" align="right" border="0">
        <tr>
            <td>
                <p>
                    &nbsp;</p>
                <p>
                    <asp:label id="Label1" runat="server">Ricerca</asp:label>
                    <asp:textbox id="txtSearch" runat="server"></asp:textbox>
                    <asp:button id="btnSearch" runat="server" text="Search"></asp:button>
                    <br>
                    <br>
                    <asp:label id="lbl" runat="server"></asp:label>
                </p>
            </td>
        </tr>
    </table>

All'interno del codice è necessario importare i riferimenti a System.Data e System.Data.OleDb e le seguenti righe di codice:

    Dim cnt As Integer

    Private Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        ' crea la connessione con il catalogo di Index Search 
        Dim odbSearch As New System.Data.OleDb.OleDbConnection()
        Dim cmdSearch As New System.Data.OleDb.OleDbCommand()
        odbSearch.ConnectionString = "Provider=""MSIDXS"";Data Source=""[Catalog name]"";"
        cmdSearch.Connection = odbSearch

        Try
            cmdSearch.CommandText = "select doctitle, filename, vpath, rank, characterization from scope() " & _
                                    "where FREETEXT(Contents, '" + txtSearch.Text + "') and filename <> 'search.aspx' order by rank desc "
            odbSearch.Open()
            Try
                Dim rdrSearch As OleDbDataReader = cmdSearch.ExecuteReader()
                lbl.Text = ""
                While rdrSearch.Read()
                    cnt += 1
                    getpagelink(rdrSearch(1).ToString())
                End While
            Catch ex As Exception
                lbl.Text = ex.Message
            End Try
            odbSearch.Close()
        Catch ex As SqlException
            lbl.Text = ex.Message.ToString()
            odbSearch.Close()
        End Try
    End Sub

    Public Sub getpagelink(ByVal srcfile As String)
        Dim temp As String = (cnt).ToString() + ".) " + srcfile
    End Sub

Se nella cartella sono presenti file di Word, Excel, PowerPoint o testo non ci sono problemi. Se però avete dei file PDF non è finita qui: è necessario installare un componente che si può scaricare gratuitamente da sito Adobe che estende le funzionalità di Index Search consentendo di indicizzare anche i file PDF. Il sito per effettuare il download è il seguente http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=2611&fileID=2457 (che si trova in allegato).

ifilter60.exe (9,67 mb)

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

asp.net

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by Esia Software 1.4.0.0

Informazioni sull'autore

Sono un cittadini di Trieste, ho 33 anni e faccio lo sviluppatore nella mia azienda che si chiama Esia Software.

Commenti recenti

Comment RSS

Post recenti

Calendar

<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Info legali

Le opinioni espresse in questo blog sono strettamente personali e ogni persona è responsabile dei commenti che inserisce.

RecentComments

Comment RSS