asp query form

H

Harvey

Hi,

I try to write an asp query form that lets client search any text-string and
display all pages in my web server that contain the text. I have IIS 6.0 on a
server 2003. The MSDN site says there is a sample file called Ixtrasp.asp,
but I could not find it in my system although I installed indexing service. I
followed the steps in MSDN site to create a basic .asp query form (too long
to post it here), but it always displays:

No documents matched the query

The index is out of date.
Page of 0

Under the computer's manager -- indexing services -- web, the "Query the
Catalog" works, displaying all pages in my web server that contain the
searching text.

Can somebody help me? either tell me where to find Ixtrasp.asp, or any
similar sample asp page for searching text-string in the web pages (not
search in database)?

Thanks!

Harvey
 
J

Jeff Dillon

Post the relevant code. You should be able to create a reproducible page
with only a few lines of code.

Jeff
 
H

Harvey

I believe there must be a simple code to do it. But, I just haven't found it.
Here is the code that I copied from MSDN web site:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> </SCRIPT>
<TITLE>Index Server Search Form</TITLE>
<META NAME="DESCRIPTION" CONTENT="Sample ASP query form for Microsoft
Index Server">
<META NAME="KEYWORDS" CONTENT="query, content, hit, asp">
<META NAME="MS.LOCALE" CONTENT="EN-US">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=Windows-1252">
<%
NewQuery = FALSE
UseSavedQuery = FALSE
QueryForm = Request.ServerVariables( "PATH_INFO" )
SearchString = ""
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
SearchString = Request.Form("SearchString")
pg = Request.Form("pg")
if pg <> "" then
NextPageNumber = pg
NewQuery = FALSE
UseSavedQuery = TRUE
else
NewQuery = SearchString <> ""
end if
end if
%>
</HEAD>

<TABLE>
<TR> <TD><H1>Sample ASP Search Form</H1></TD> </TR>
</TABLE>

<HR WIDTH=75% ALIGN=center SIZE=3>
<p>
<TABLE>
<TR> <TD ALIGN=LEFT>Enter your query below:</TD> </TR>
<TR>
<TD>
<FORM ACTION="<%= QueryForm%>" METHOD=POST>
<TABLE> <TR>
<TD><INPUT TYPE="TEXT" NAME="SearchString" SIZE="60"
MAXLENGTH="100" VALUE="<%=SearchString%>"></TD>
<TD><INPUT TYPE="SUBMIT" NAME="Action" VALUE="New Query"></TD>
</TR>
</TABLE>
</FORM>
</TD>
</TR>
</TABLE>
<BR>
<%
if SearchString <> "" then
if NewQuery then
set Session("Query") = nothing
set Session("Recordset") = nothing
NextRecordNumber = 1

set Q = Server.CreateObject("ixsso.Query")
set util = Server.CreateObject("ixsso.util")
Q.Query = SearchString
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, path, filename, size, write,
characterization"
util.AddScopeToQuery Q, "/Myfiles", "deep"

set RS = Q.CreateRecordSet("nonsequential")

RS.PageSize = 10
ActiveQuery = TRUE

elseif UseSavedQuery then
if IsObject( Session("Query") ) And IsObject( Session("RecordSet") ) then
set Q = Session("Query")
set RS = Session("RecordSet")

if RS.RecordCount <> -1 and NextPageNumber <> -1 then
RS.AbsolutePage = NextPageNumber
NextRecordNumber = RS.AbsolutePosition
end if
ActiveQuery = TRUE
else
Response.Write "ERROR - No saved query"
end if
end if
%>
<%
if ActiveQuery then
if not RS.EOF then
%>
<p><HR width="80%" ALIGN=center SIZE=3>
<p>
<%
LastRecordOnPage = NextRecordNumber + RS.PageSize - 1
CurrentPage = RS.AbsolutePage
if RS.RecordCount <> -1 AND RS.RecordCount < LastRecordOnPage then
LastRecordOnPage = RS.RecordCount
end if

Response.Write "Documents " & NextRecordNumber & " to " &
LastRecordOnPage
if RS.RecordCount <> -1 then
Response.Write " of " & RS.RecordCount
end if
Response.Write " matching the query " & chr(34) & "<I>"
Response.Write SearchString & "</I>" & chr(34) & ".<P>"
%>
<dl>
<!-- BEGIN first row of query results table -->
<% Do While Not RS.EOF and NextRecordNumber <= LastRecordOnPage %>

<%
' This is the detail portion for Title, Abstract, URL, Size, and
' Modification Date.

' If there is a title, display it, otherwise display the virtual path.
%>
<p>
<dt><%= NextRecordNumber%>.
<%if VarType(RS("DocTitle")) = 1 or RS("DocTitle") = "" then%>
<b><a href="<%=RS("vpath")%>"><%= Server.HTMLEncode(
RS("filename") )%></a></b>
<%else%>
<b><a href="<%=RS("vpath")%>"><%=
Server.HTMLEncode(RS("DocTitle"))%></a></b>
<%end if%>
<dd>
<%if VarType(RS("characterization")) = 8 and RS("characterization")
<> "" then%>
<b><i>Abstract: </I></b><%=
Server.HTMLEncode(RS("characterization"))%>
<br>
<%end if%>
<cite>
<a
href="<%=RS("vpath")%>">http://<%=Request("server_name")%><%=RS("vpath")%></a>
<font size=-1> - <%if RS("size") = "" then%>(size and time
unknown)<%else%>size <%=RS("size")%> bytes - <%=RS("write")%> GMT<%end
if%></font>
</cite>
<%
RS.MoveNext
NextRecordNumber = NextRecordNumber+1
Loop
%>
</dl>
<P><BR>
<%
else ' NOT RS.EOF
if NextRecordNumber = 1 then
Response.Write "No documents matched the query<P>"
else
Response.Write "No more documents in the query<P>"
end if

end if ' NOT RS.EOF
%>
<!-- If the index is out of date, display the fact -->
<%if Q.OutOfDate then%>
<P>
<I><B>The index is out of date.</B></I><BR>
<%end if%>
<!--
If the query was not executed because it needed to enumerate to
resolve the query instead of using the index, but AllowEnumeration
was FALSE, let the user know
-->
<%if Q.QueryIncomplete then%>
<P>
<I><B>The query is too expensive to complete.</B></I><BR>
<%end if%>
<!--
If the query took too long to execute (for example, if too much work
was required to resolve the query), let the user know
-->
<%if Q.QueryTimedOut then%>
<P>
<I><B>The query took too long to complete.</B></I><BR>
<%end if%>
<TABLE>
<!--
This is the "previous" button.
This retrieves the previous page of documents for the query.
-->
<%SaveQuery = FALSE%>
<%if CurrentPage > 1 and RS.RecordCount <> -1 then %>
<td align=left>
<form action="<%= QueryForm%>" method="POST">
<INPUT TYPE="HIDDEN" NAME="SearchString"
VALUE="<%=SearchString%>">
<INPUT TYPE="HIDDEN" name="pg" VALUE="<%=CurrentPage-1%>" >

<input type="submit" value="Previous <%=RS.PageSize%> documents">
</form>
</td>
<%SaveQuery = TRUE%>
<%end if%>
<!--
This is the "next" button.
This button retrieves the next page of documents for the query.
If the RS.RecordCount is available, the number of
documents on the next page will be displayed.
-->
<%if Not RS.EOF then%>
<td align=right>
<form action="<%= QueryForm%>" method="POST">
<INPUT TYPE="HIDDEN" NAME="SearchString"
VALUE="<%=SearchString%>">
<INPUT TYPE="HIDDEN" name="pg" VALUE="<%=CurrentPage+1%>" >
<% NextString = "Next "
if RS.RecordCount <> -1 then
NextSet = (RS.RecordCount - NextRecordNumber) + 1
if NextSet > RS.PageSize then
NextSet = RS.PageSize
end if
NextString = NextString & NextSet & " documents"
else
NextString = NextString & " page of documents"
end if
%>
<input type="submit" value="<%=NextString%>">
</form>
</td>
<%SaveQuery = TRUE%>
<%end if%>
</TABLE>

<!-- Display the page number -->
Page <%=CurrentPage%><%if RS.PageCount <> -1 then
Response.Write " of " & RS.PageCount
end if %><%
' If either of the previous or back buttons were displayed, save the query
' and the recordset in session variables.
if SaveQuery then
set Session("Query") = Q
set Session("RecordSet") = RS
else
RS.close
Set RS = Nothing
Set Q = Nothing
set Session("Query") = Nothing
set Session("RecordSet") = Nothing
end if
%><% end if
elseif not NewQuery then
Response.Write ""
else
Response.Write "Please enter a word or phrase to search for."
end if
%></html>
 
J

Jeff Dillon

Sorry, I won't go through that much code. Forget about the POST and
variables...hard code everything.

Reduce the number of lines to 10 or so...

Jeff

Harvey said:
I believe there must be a simple code to do it. But, I just haven't found it.
Here is the code that I copied from MSDN web site:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> </SCRIPT>
<TITLE>Index Server Search Form</TITLE>
<META NAME="DESCRIPTION" CONTENT="Sample ASP query form for Microsoft
Index Server">
<META NAME="KEYWORDS" CONTENT="query, content, hit, asp">
<META NAME="MS.LOCALE" CONTENT="EN-US">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=Windows-1252">
<%
NewQuery = FALSE
UseSavedQuery = FALSE
QueryForm = Request.ServerVariables( "PATH_INFO" )
SearchString = ""
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
SearchString = Request.Form("SearchString")
pg = Request.Form("pg")
if pg <> "" then
NextPageNumber = pg
NewQuery = FALSE
UseSavedQuery = TRUE
else
NewQuery = SearchString <> ""
end if
end if
%>
</HEAD>

<TABLE>
<TR> <TD><H1>Sample ASP Search Form</H1></TD> </TR>
</TABLE>

<HR WIDTH=75% ALIGN=center SIZE=3>
<p>
<TABLE>
<TR> <TD ALIGN=LEFT>Enter your query below:</TD> </TR>
<TR>
<TD>
<FORM ACTION="<%= QueryForm%>" METHOD=POST>
<TABLE> <TR>
<TD><INPUT TYPE="TEXT" NAME="SearchString" SIZE="60"
MAXLENGTH="100" VALUE="<%=SearchString%>"></TD>
<TD><INPUT TYPE="SUBMIT" NAME="Action" VALUE="New Query"></TD>
</TR>
</TABLE>
</FORM>
</TD>
</TR>
</TABLE>
<BR>
<%
if SearchString <> "" then
if NewQuery then
set Session("Query") = nothing
set Session("Recordset") = nothing
NextRecordNumber = 1

set Q = Server.CreateObject("ixsso.Query")
set util = Server.CreateObject("ixsso.util")
Q.Query = SearchString
Q.SortBy = "rank[d]"
Q.Columns = "DocTitle, vpath, path, filename, size, write,
characterization"
util.AddScopeToQuery Q, "/Myfiles", "deep"

set RS = Q.CreateRecordSet("nonsequential")

RS.PageSize = 10
ActiveQuery = TRUE

elseif UseSavedQuery then
if IsObject( Session("Query") ) And IsObject( Session("RecordSet") ) then
set Q = Session("Query")
set RS = Session("RecordSet")

if RS.RecordCount <> -1 and NextPageNumber <> -1 then
RS.AbsolutePage = NextPageNumber
NextRecordNumber = RS.AbsolutePosition
end if
ActiveQuery = TRUE
else
Response.Write "ERROR - No saved query"
end if
end if
%>
<%
if ActiveQuery then
if not RS.EOF then
%>
<p><HR width="80%" ALIGN=center SIZE=3>
<p>
<%
LastRecordOnPage = NextRecordNumber + RS.PageSize - 1
CurrentPage = RS.AbsolutePage
if RS.RecordCount <> -1 AND RS.RecordCount < LastRecordOnPage then
LastRecordOnPage = RS.RecordCount
end if

Response.Write "Documents " & NextRecordNumber & " to " &
LastRecordOnPage
if RS.RecordCount <> -1 then
Response.Write " of " & RS.RecordCount
end if
Response.Write " matching the query " & chr(34) & "<I>"
Response.Write SearchString & "</I>" & chr(34) & ".<P>"
%>
<dl>
<!-- BEGIN first row of query results table -->
<% Do While Not RS.EOF and NextRecordNumber <= LastRecordOnPage %>

<%
' This is the detail portion for Title, Abstract, URL, Size, and
' Modification Date.

' If there is a title, display it, otherwise display the virtual path.
%>
<p>
<dt><%= NextRecordNumber%>.
<%if VarType(RS("DocTitle")) = 1 or RS("DocTitle") = "" then%>
<b><a href="<%=RS("vpath")%>"><%= Server.HTMLEncode(
RS("filename") )%></a></b>
<%else%>
<b><a href="<%=RS("vpath")%>"><%=
Server.HTMLEncode(RS("DocTitle"))%></a></b>
<%end if%>
<dd>
<%if VarType(RS("characterization")) = 8 and RS("characterization")
<> "" then%>
<b><i>Abstract: </I></b><%=
Server.HTMLEncode(RS("characterization"))%>
<br>
<%end if%>
<cite>
<a
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top