Code Bank
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
 
User Name:
Password:
Remember me
Go Back   ASP Free ForumsProgrammingCode Bank

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread ASP Free Forums Sponsor:
  #1  
Old December 13th, 2004, 12:37 AM
proteus proteus is offline
Registered User
ASP Free Newbie (0 - 499 posts)
 
Join Date: Dec 2004
Posts: 1 proteus User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Advanced Boolean search - Indexing

Hi, This is the code of my query.asp. I need an advanced search (boolean) eg. findthisword* , "find this word" - where I would search with quotes for the "exact phrase" . Please have a look into the code and see what I am missing. thanks.

Code:
 
<HTML>
<HEAD>
<!-- #include file="include/style.asp" -->
<LINK REL=stylesheet HREF="http://xxxxx/include/style.css" TYPE="text/css"> 
 
 
<%
		FormLogo = "is2logo.gif"
'	 FormBG = "background = " & chr(34) & "is2bkgnd.gif" & chr(34)
'		FormBG = "bgcolor = " & chr(34) & "#FFFFFF" & chr(34)
		FormScope = "/xxxxx/Documents/"
 
	 PageSize = 10
		SiteLocale = "EN-US"
%>
	<META NAME="AUTHOR"	 CONTENT="Index Server Team">
	<META NAME="KEYWORDS"	CONTENT="query, content, hit">
	<META NAME="SUBJECT"	 CONTENT="sample form">
	<META NAME="MS.CATEGORY" CONTENT="Internet">
	<META NAME="MS.LOCALE" CONTENT="EN-US">
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1252">
 
<%
' Set Initial Conditions
	NewQuery = FALSE
	UseSavedQuery = FALSE
	SearchString = ""
 
	QueryForm = Request.ServerVariables("PATH_INFO")
 
' Did the user press a SUBMIT button to execute the form? If so get the form variables.
	if Request.ServerVariables("REQUEST_METHOD") = "POST" then
		SearchString = Request.Form("SearchString")
Advanced = Request.Form("Advanced")
 
SearchString = trim(request("SearchString"))
SearchString = replace(SearchString, "'", "", 1, -1, vbtextcompare)
 
if SearchString = "" then
SearchString = "my company name"
end if
 
if trim(SearchString) ="" then
SearchString = "my company name"
end if
 
		' NOTE: this will be true only if the button is actually pushed.
		if Request.Form("Action") = "Go" then
			NewQuery = TRUE
RankBase=1000
		end if
	end if
	if Request.ServerVariables("REQUEST_METHOD") = "GET" then
		SearchString = Request.QueryString("qu")
				Advanced = Request.QueryString("Advanced")
				FormScope = Request.QueryString("sc")
	RankBase = Request.QueryString("RankBase")
		if Request.QueryString("pg") <> "" then
			NextPageNumber = Request.QueryString("pg")
			NewQuery = FALSE
			UseSavedQuery = TRUE
		else
			NewQuery = SearchString <> ""
		end if
	end if
%>
 
</HEAD>
 
<BODY <%=FormBG%>>
 
 
 
 
 
 
<table border=0 cellpadding=0 cellspacing=0 valign=top width=100%>
	</td><td height=1 colspan=2 class=linething><img src=i/0.gif width=1 height=1></td></tr><tr><td valign=top><img src=i/0.gif width=4 height=1></td><td valign=top>
<BR>
 
<% 
if NewQuery then
	set Session("Query") = nothing
	set Session("Recordset") = nothing
	NextRecordNumber = 1
 
' Remove any leading and ending quotes from SearchString
 
		SrchStrLen = len(SearchString)
 
		if left(SearchString, 1) = chr(34) then
				SrchStrLen = SrchStrLen-1
				SearchString = right(SearchString, SrchStrLen)
		end if
 
		if right(SearchString, 1) = chr(34) then
				SrchStrLen = SrchStrLen-1
				SearchString = left(SearchString, SrchStrLen)
		end if
 
	if Advanced<> "on" then
	 CompSearch = "$contents " & chr(34) & SearchString & chr(34)
	else
	 CompSearch = SearchString
	end if
 
	set Q = Server.CreateObject("ixsso.Query")
		set util = Server.CreateObject("ixsso.Util")
 
	Q.Query = CompSearch
	Q.SortBy = "rank[d]"
	Q.Columns = "DocTitle, vpath, filename, size, write, characterization, rank"
Q.MaxRecords = 300 
 
 
		if FormScope <> "/" then
				util.AddScopeToQuery Q, FormScope, "deep"
		end if
 
		if SiteLocale<>"" then
				Q.LocaleID = util.ISOToLocaleID(SiteLocale)
		end if
 
	set RS = Q.CreateRecordSet("nonsequential")
 
	RS.PageSize = PageSize
	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>"
%>
 
<% if Not RS.EOF and NextRecordNumber <= LastRecordOnPage then%>
<table border=0>
<colgroup width=105>
<% end if %>
 
<% 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 filename.
%>
	<p>
 
<% ' Graphically indicate rank of document with list of stars (*'s).
 
if NextRecordNumber = 1 then
RankBase=RS("rank")
end if
 
if RankBase>1000 then
RankBase=1000
elseif RankBase<1 then
RankBase=1
end if
 
NormRank = RS("rank")/RankBase
 
if NormRank > 0.80 then
stars = "rankbtn5.gif"
elseif NormRank > 0.60 then
stars = "rankbtn4.gif"
elseif NormRank > 0.40 then
stars = "rankbtn3.gif"
elseif NormRank >.20 then
stars = "rankbtn2.gif"
else stars = "rankbtn1.gif"
 
end if
 
%>
 
<tr>
<td align="right" valign=top>
<%= NextRecordNumber%>.
</td>
<td><b> 
<%if VarType(RS("DocTitle")) = 1 or RS("DocTitle") = "" then%>
	<a class=query href="<%=RS("vpath")%>"><%= Server.HTMLEncode( RS("filename") )%></a>
<%else%>
	<a class=query href="<%=RS("vpath")%>" ><%= Server.HTMLEncode(RS("DocTitle"))%></a>
<%end if%>
</b></td>
</tr>
 
<tr>
<td valign=top align=left>
<IMG SRC="searchi/<%=stars%>">
<br>
</td>
<td valign=top>
<%if VarType(RS("characterization")) = 8 and RS("characterization") <> "" then%>
	<b><i>Abstract: </I></b><%= Server.HTMLEncode(RS("characterization"))%>
			<%end if%>
<p>
<i><a href="<%=RS("vpath")%>" style="color:blue;">http://<%=Request("server_name")%><%=RS("vpath")%></a>
			<br><%if RS("size") = "" then%>(size and time unknown)<%else%>size <%=RS("size")%> bytes - <%=RS("write")%> GMT<%end if%></i>
</td>
</tr>
<tr>
</tr>
 
<%
		 RS.MoveNext
		 NextRecordNumber = NextRecordNumber+1
	 Loop
%>
 
</table>
 
<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 NOT Q.OutOfDate then
' If the index is current, display the fact %>
<P>
	<I><B>The index is up to date.</B></I><BR>
<%end if
 
 
if Q.QueryIncomplete then
'	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 %>
 
	<P>
	<I><B>The query is too expensive to complete.</B></I><BR>
<%end if
 
 
if Q.QueryTimedOut then
'	If the query took too long to execute (for example, if too much work
'	was required to resolve the query), let the user know %>
	<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="get">
			<INPUT TYPE="HIDDEN" NAME="qu" VALUE="<%=SearchString%>">
			<INPUT TYPE="HIDDEN" NAME="Advanced" VALUE="<%=Advanced%>">
			<INPUT TYPE="HIDDEN" NAME="sc" VALUE="<%=FormScope%>">
			<INPUT TYPE="HIDDEN" name="pg" VALUE="<%=CurrentPage-1%>" >
<INPUT TYPE="HIDDEN" NAME = "RankBase" VALUE="<%=RankBase%>">
			<input type="submit" value="Previous <%=RS.PageSize%> documents">
		</form>
	</td>
		<%SaveQuery = TRUE%>
<%end if%>
 
 
<%
'	This is the "next" button for unsorted queries.
'	This retrieves the next page of documents for the query.
 
if Not RS.EOF then%>
	<td align=right>
		<form action="<%=QueryForm%>" method="get">
			<INPUT TYPE="HIDDEN" NAME="qu" VALUE="<%=SearchString%>">
			<INPUT TYPE="HIDDEN" NAME="Advanced" VALUE="<%=Advanced%>">
			<INPUT TYPE="HIDDEN" NAME="sc" VALUE="<%=FormScope%>">
			<INPUT TYPE="HIDDEN" NAME = "RankBase" VALUE="<%=RankBase%>">
<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 %>
 
	</td>
	</tr></table>
	</td></tr>
	<tr><td valign=bottom>
	 </td></tr>
	</table>
 
 
 
</body>
</html>
 

Reply With Quote
Reply

Viewing: ASP Free ForumsProgrammingCode Bank > Advanced Boolean search - Indexing


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway