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>




