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]

Reply via email to