Hi Chris, In the script specifically name the catalog that you want searched. Uncomment the following line and replace "MyCatalog" with the name of your catalog.
It should work fine. ' ixQuery.Catalog = "MyCatalog" ' Specify you catalog here if it's not the default Happy Holidays! Kevin M. McClain BAI Web Systems Architect -----Original Message----- From: Chris Levis [mailto:[EMAIL PROTECTED]] Sent: Saturday, December 22, 2001 11:26 PM To: NT 2000 Discussions Subject: .asp query in Index Server 3 Hi. I'm an intern at my company, and I've been tasked to have a searchable index of all the company's docs, and have that search functionality on our intranet. I'm not indexing the contents of the intranet website, rather the contents of various drives across the network. On the test box (Win2k Pro) I've got the IS up and running and I have everything that I want catalogued. Using the "Query the Catalog" function in Computer Manager I get all the results I want. But I don't know how to get that query page to a spot where I can use it with IE5.5. Can anyone offer any tips on how to get this functionality running? I've been working with the following script, but I only seem to be getting results from within the wwwroot catalog (created by default when IS is installed) rather than my catalog (eg, "Docs"). Thanks alot for any and all advice! Happy holidays, all =) ----------------------------------------------------------------- <% option explicit ' Search scripts ' Written by C Maunder ([EMAIL PROTECTED]) ' www.codeproject.com %> <html><head><title>Search our Site</title></head><body> <% '/////////////////////////////////////////////////////////////////////// ////////// '// Initialisation ' Declare variables. dim target, firstRow, rowCount ' Get the request parameters. target = Request("target") ' The search request firstRow = Request("fr") ' First row of results to display rowCount = Request("rc") ' Record Count - number of rows to show ' Set default values if none found if firstRow = "" or not IsNumeric(firstRow) Then firstRow = 1 else firstRow = CInt(firstRow) End If if rowCount = "" or not IsNumeric(rowCount) Then rowCount = 10 else rowCount = CInt(rowCount) End If Dim ScriptName, ServerName ScriptName = Request.ServerVariables("SCRIPT_NAME") ServerName = Request.ServerVariables("SERVER_NAME") ' Construct base URL for navigation buttons dim URL URL = ScriptName & "?target=" & Server.URLEncode(target) URL = URL & "&rc=" & Server.URLEncode(rowCount) '/////////////////////////////////////////////////////////////////////// ////////// '// The search form %> <form name="searchForm" action="<%=ScriptName%>"> <b>Search for:</b> <INPUT TYPE="text" NAME="target" SIZE="45" MAXLENGTH="100" VALUE="<%=target%>"> <INPUT TYPE="submit" VALUE=" Search "> </form> <hr size=2 noshade><br> <% DoSearch target '/////////////////////////////////////////////////////////////////////// ////////// '// Perform the search sub DoSearch(target) on error resume next if target <> "" then dim strQuery strQuery = "$contents " & target ' for free text search ' strQuery = "(#filename *.asp) AND " &_ ' "(NOT #vpath *\_vti*) AND (NOT #vpath *\cgi-bin*) AND " &_ ' "(NOT #vpath *\IISOrigBackup*) AND (NOT #vpath *\scripts*) AND " &_ ' "(NOT #vpath *\_private*) AND " &_ ' "(" & target & ")" ' Create the Index Server query object, setting the columns, the sort to ' descending, the max records to 300, and the query string to the given ' target. Note that the query string specifies, with NOT and the ' #vpath operators, that any files in the *\_vti path, should be excluded. ' (_vti* directories contain FrontPage Extension files, and we don't want ' users browsing them.) dim ixQuery ' Index Server query object. set ixQuery = Server.CreateObject("ixsso.Query") if (Err.description <> "") Then Response.Write ("<p><b>Query object Error: " & Err.description & ".</b></p>" & vbCRLF) Exit sub end if ixQuery.Columns = "doctitle, vpath, filename, size, write, characterization, rank" ixQuery.SortBy = "rank[d], doctitle" ixQuery.MaxRecords = 300 ixQuery.Query = strQuery ' ixQuery.Catalog = "MyCatalog" ' Specify you catalog here if it's not the default ' Create a search utility object to allow us to specify the search type as 'deep', ' meaning it will search recursively down through the directories dim util set util = Server.CreateObject("ixsso.Util") util.AddScopeToQuery ixQuery, Server.MapPath("/"), "deep" if (Err.description <> "") Then Response.Write ("<p><b>Search Utility Error: " & Err.description & ".</b></p>" & vbCRLF) Exit sub end if ' Run the query (i.e. create the recordset). dim queryRS ' Query recordset. set queryRS = ixQuery.CreateRecordSet("nonsequential") ' Check the query result. If it timed out or return no records, then show ' an appropriate message. Otherwise, show the hits. if (Err.description <> "") Then Response.Write ("<p><b>Search Recordset Error: " & Err.description & ".</b></p>" & vbCRLF) Exit sub Else if queryRS is Nothing Then Response.Write ("<p>Query returned no matches.</p>" & vbCRLF) elseif (ixQuery.QueryTimedOut) then Response.Write ("<p><b>Error: " & timedOut_Text & ".</b></p>" & vbCRLF) elseif (queryRS.EOF or queryRS.BOF or queryRS.RecordCount <= 0) then Response.Write ("<p>No matches found.</p>" & vbCRLF) else queryRS.PageSize = rowCount call showHits(queryRS) if (Err.number <> 0) Then Response.Write ("<p><b>Record Display Error: " & Err.description & ".</b></p>" & vbCRLF) End If end if End If ' Clean up queryRS.close set queryRS = nothing set ixQuery = nothing set util = nothing End if end Sub ' showHits(): Displays the query hits from the query recordset. ' sub showHits(queryRS) dim recordNumber ' record number dim docTitle ' document title dim endRow ' last row being displayed dim prevRow ' row to display for "prev" option dim nextRow ' row to display for "next" option dim lastRow ' row to display for "last" option dim remainder ' remainder (used to determine if last page is short) dim recordCount ' numner of records returned recordCount = queryRS.RecordCount if firstRow > recordCount Then firstRow = 1 endRow = firstRow + RowCount-1 ' Last row on page to show if endRow > recordCount Then endRow = recordCount prevRow = firstRow - RowCount ' Start of previous page's rows if PrevRow < 1 Then PrevRow = 1 nextRow = endRow + 1 ' Start of next pages rows. May be > CommentCount remainder = recordCount mod RowCount if remainder = 0 Then lastRow = recordCount - RowCount + 1 else lastRow = recordCount - remainder + 1 End If if lastRow < 1 Then lastRow = 1 ' Start of last pages rows ' Go to the top of the record set, then move forward to the record that ' corresponds to the first row. queryRS.MoveFirst() if (firstRow > 1) then queryRS.Move(CInt(firstRow) - 1) end if ' Show the summary info.: # of records found and range showing. %> <table border=0> <tr><td colspan=2> <table border=0 width=100%><tr> <td nowrap><b>Found:</b> <%=queryRS.RecordCount%> <b>Showing:</b> <%=firstRow%> - <%=endRow%></td> <td align=right nowrap> <% if firstRow <> "1" Then %> <a href="<%=URL&"&fr=1"%>">First</a> | <% Else %> First | <% End If %> <% if firstRow <> "1" Then %> <a href="<%=URL&"&fr="&prevRow%>">Prev</a> | <% Else %> Prev | <% End If %> <% if firstRow + RowCount <= recordCount Then %> <a href="<%=URL&"&fr="&nextRow%>">Next</a> | <% Else %> Next | <% End If %> <% if firstRow + RowCount <= recordCount Then %> <a href="<%=URL&"&fr="&lastRow%>">Last</a> <% Else %> Last <% End If %> </td></tr> </table></td></tr> <tr><td colspan=2> </td></tr> <% ' Show the records. recordNumber = firstRow do while ((not queryRS.EOF) and (recordNumber <= endRow)) ' Get the document title. If it's blank, set it to "Untitled". docTitle = queryRS("doctitle") if docTitle = "" then docTitle = "Untitled" ' Show the record #, link to the document, URL, and characterization. Response.Write "<tr>" Response.Write "<td valign=top>" & recordNumber & ".</td>" Response.Write "<td valign=top>" Response.Write "<a href='" & queryRS("vpath") & "'>" & docTitle & "</a><br>" Response.Write "<b>URL: </b> http://" & ServerName & queryRS("vpath") & "<br>" Response.Write Server.HTMLEncode(queryRS("characterization")) Response.Write "</td>" Response.Write "</tr>" recordNumber = recordNumber + 1 queryRS.MoveNext() loop ' Display the navigation links. %> <tr><td colspan=2> </td></tr> <tr><td colspan=2 align=center> <% if firstRow <> "1" Then %> <a href="<%=URL&"&fr=1"%>">First</a> | <% Else %> First | <% End If %> <% if firstRow <> "1" Then %> <a href="<%=URL&"&fr="&prevRow%>">Prev</a> | <% Else %> Prev | <% End If %> <% if firstRow + RowCount <= recordCount Then %> <a href="<%=URL&"&fr="&nextRow%>">Next</a> | <% Else %> Next | <% End If %> <% if firstRow + RowCount <= recordCount Then %> <a href="<%=URL&"&fr="&lastRow%>">Last</a> <% Else %> Last <% End If %> </td></tr> </table> <% end sub %> </body> </html> ------ You are subscribed as [EMAIL PROTECTED] Archives: http://www.swynk.com/sitesearch/search.asp To unsubscribe send a blank email to [EMAIL PROTECTED] ------ You are subscribed as [email protected] Archives: http://www.swynk.com/sitesearch/search.asp To unsubscribe send a blank email to [EMAIL PROTECTED]
