Header image  

An Integrated Pest Management
Newsletter for Trees and Shrubs

 
line decor
  
line decor
 
 
 
 

 
 
Branching Out logoSearch Function

<% '///////////////////////////////////////////////////////////////////////////////// '// 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 %>

Search for:


<% DoSearch target '///////////////////////////////////////////////////////////////////////////////// '// Set file types ************************************************************************////////// sub DoSearch(target) on error resume next if target <> "" then dim strQuery ' strQuery = "$contents " & target ' for free text search strQuery = "((#filename *.html) OR " &_ "(#filename *.htm)) 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 ("

Query object Error: " & Err.description & ".

" & vbCRLF) Exit sub end if '// Change Catalog ************************************************************************////////// ixQuery.Columns = "doctitle, vpath, filename, size, write, characterization, rank" ixQuery.SortBy = "rank[d], doctitle" ixQuery.MaxRecords = 300 ixQuery.Query = strQuery 'ixQuery.Catalog = "Branching Out" ' Specify your catalog here if it's not the default ixQuery.Catalog = "D:\Inetpub\BranchingOut" ' 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 ("

Search Utility Error: " & Err.description & ".

" & 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 ("

Search Recordset Error: " & Err.description & ".

" & vbCRLF) Exit sub Else if queryRS is Nothing Then Response.Write ("

Query returned no matches.

" & vbCRLF) elseif (ixQuery.QueryTimedOut) then Response.Write ("

Error: " & timedOut_Text & ".

" & vbCRLF) elseif (queryRS.EOF or queryRS.BOF or queryRS.RecordCount <= 0) then Response.Write ("

No matches found.

" & vbCRLF) else queryRS.PageSize = rowCount call showHits(queryRS) if (Err.number <> 0) Then Response.Write ("

Record Display Error: " & Err.description & ".

" & 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. %> <% ' 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 "" Response.Write "" Response.Write "" Response.Write "" recordNumber = recordNumber + 1 queryRS.MoveNext() loop ' Display the navigation links. %>
Found: <%=queryRS.RecordCount%>    Showing: <%=firstRow%> - <%=endRow%> <% if firstRow <> "1" Then %> ">First | <% Else %> First | <% End If %> <% if firstRow <> "1" Then %> Prev | <% Else %> Prev | <% End If %> <% if firstRow + RowCount <= recordCount Then %> Next | <% Else %> Next | <% End If %> <% if firstRow + RowCount <= recordCount Then %> Last <% Else %> Last <% End If %>
 
" & recordNumber & "." Response.Write "" & docTitle & "
" Response.Write "URL: http://" & ServerName & queryRS("vpath") & "
" 'Response.Write Server.HTMLEncode(queryRS("characterization")) Response.Write "
 
<% if firstRow <> "1" Then %> ">First | <% Else %> First | <% End If %> <% if firstRow <> "1" Then %> Prev | <% Else %> Prev | <% End If %> <% if firstRow + RowCount <= recordCount Then %> Next | <% Else %> Next | <% End If %> <% if firstRow + RowCount <= recordCount Then %> Last <% Else %> Last <% End If %>
<% end sub %>

Helpful Hints for Searching
(If you are a paid subscriber you can access the search function of ALL the past and current issues by going to a recent issue and clicking on the Search function button there or go to http://branchingout.cornell.edu/issues/SearchPP.asp. You will need to put in the username and passwords if you haven't already signed in. If you are only searching here you will only get topics that are mentioned in the few past issues that are available to the entire public.)

To Search for Use Result
Two terms in the same document red and dog Documents with both the words "red" and "dog"
Either of two terms in a document red or dog Documents with the words "red" or "dog"
One term without a second term red and not dog Documents with the word "red" but not "dog"
Two terms that are close together in the same document red red near dog Documents with the word "red" near the word "dog"
Either of two terms and not two other terms if they are close together red or dog and not (black near cat) Documents with the word "red" or "dog" and not the words "black" and "cat" if they are within 50 words of each other
A phrase that has two or more words together "red dog" Documents with the words red dog right next to each other

Order of precedence are evaluated in the following order:

NOT

AND or NEAR

OR

Top of Page