By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,686 Members | 2,708 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,686 IT Pros & Developers. It's quick & easy.

asp query form

P: n/a
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
Jul 21 '05 #1
Share this Question
Share on Google+
3 Replies


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

Jeff

"Harvey" <Ha****@discussions.microsoft.com> wrote in message
news:60**********************************@microsof t.com...
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

Jul 21 '05 #2

P: n/a
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>
"Jeff Dillon" wrote:
Post the relevant code. You should be able to create a reproducible page
with only a few lines of code.

Jeff

"Harvey" <Ha****@discussions.microsoft.com> wrote in message
news:60**********************************@microsof t.com...
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


Jul 21 '05 #3

P: n/a
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" <Ha****@discussions.microsoft.com> wrote in message
news:DE**********************************@microsof t.com...
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>
"Jeff Dillon" wrote:
Post the relevant code. You should be able to create a reproducible page
with only a few lines of code.

Jeff

"Harvey" <Ha****@discussions.microsoft.com> wrote in message
news:60**********************************@microsof t.com...
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


Jul 21 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.