Toon posts:

Files excluded uit resultaat in Index Server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Momenteel gebruiken wij Index Server als zoekmachine op ons intranet. Werkt allemaal wel goed, maar hij komt in de resultaten ook met bestanden zoals cfm, asp en dergelijke. Deze moet je eigenlijk uit de resultaten kunnen filteren, maar in welk bestand moet je dat dan doen en met welke code?

Verwijderd

Excluden van bestanden doe je in je query.

Voorbeeld:

strSqlQuery = "@contents (iets) and not #filename = *.|(txt|,asp|,inc|,cnf|,mdb|,ico|)"

Verwijderd

Topicstarter
Moet je die regel dan plaatsen in de query.asp file? Maakt het nog uit waar dan?

Verwijderd

Ergens bouw je je query op aan de hand van je keywords waar je op wilt zoeken. In die query moet je "and not #filename=...." toevoegen. Waar dat bij jou is kan ik niet zeggen zonder de code te zien.

Verwijderd

Topicstarter
Hieronder zie je de broncode van de originele versie van Advanced Index Server Search Form. Normaal gesproken moet je in de idq file de volgende regel plaatsen CiRestriction=%CiRestriction% AND NOT #filename *.doc
Deze advanced form werkt echter niet met zo'n idq file, volgens mij. Wat te doen?


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "html.dtd">
<HTML>
<HEAD>

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
<!--
option explicit
-->
</SCRIPT>
<TITLE>Advanced Index Server Search Form</TITLE>
<LINK REL=STYLESHEET HREF="is2style.css" TYPE="text/css">
<META NAME="DESCRIPTION" CONTENT="Sample query form for Microsoft Index Server">
<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">
<%
DebugFlag = FALSE
NewQuery = FALSE
UseSavedQuery = FALSE
SearchString = ""
QueryForm = Request.ServerVariables("PATH_INFO")

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
SearchString = Request.Form("SearchString")
DocAuthorRestriction = Request.Form("DocAuthorRestriction")
FSRest = Request.Form("FSRest")
FSRestVal = Request.Form("FSRestVal")
FSRestOther = Request.Form("FSRestOther")
FMMod = Request.Form("FMMod")
FMModDate = Request.Form("FMModDate")
SortBy = Request.Form("SortBy")
Colset = Request.Form("ColChoice")
Scope = Request.Form("Scope")
RankBase = Request.Form("RankBase")
' NOTE: this will be true only if the button is actually pushed.
if Request.Form("Action") = "Execute" then
NewQuery = TRUE
elseif Request.Form("pg") <> "" then
UseSavedQuery=TRUE
NextPageNumber = Request.Form("pg")
end if
end if
%>
</HEAD>

<BODY background="is2bkgnd.gif" OnLoad="SetAll()" LANGUAGE=JavaScript>

<TABLE>
<TR><TD><A HREF="http://www.microsoft.com/ntserver/search" target="_top"><IMG SRC ="is2logo.gif" border=0 VALIGN=MIDDLE ALIGN=LEFT></a></TD></TR>
<TR><TD ALIGN="RIGHT"><H3>Advanced ASP Sample</H3></TD></TR>
</TABLE>

<SCRIPT LANGUAGE=JavaScript>
<!--
function SetAll()
{
document.QForm.SearchString.value = "<%=SearchString%>";

<%select case FSRest%>
<%case " > "%>
document.QForm.FSRest.selectedIndex = 1;
<%case else%>
document.QForm.FSRest.selectedIndex = 0;
<%end select%>

<%select case FSRestVal%>
<%case "any"%>
document.QForm.FSRestVal.selectedIndex = 0;
<%case "100"%>
document.QForm.FSRestVal.selectedIndex = 1;
<%case "1024"%>
document.QForm.FSRestVal.selectedIndex = 2;
<%case "10240"%>
document.QForm.FSRestVal.selectedIndex = 3;
<%case "102400"%>
document.QForm.FSRestVal.selectedIndex = 4;
<%case "1048576"%>
document.QForm.FSRestVal.selectedIndex = 5;
<%case "10485760"%>
document.QForm.FSRestVal.selectedIndex = 6;
<%case "104857600"%>
document.QForm.FSRestVal.selectedIndex = 7;
<%case "other"%>
document.QForm.FSRestVal.selectedIndex = 8;
<%case else%>
document.QForm.FSRestVal.selectedIndex = 0;
<%end select%>

document.QForm.FSRestOther.value = "<%=FSRestOther%>";

<%select case FMMod%>
<%case "any"%>
document.QForm.FMMod.selectedIndex = 0;
<%case "-10n"%>
document.QForm.FMMod.selectedIndex = 1;
<%case "-1h"%>
document.QForm.FMMod.selectedIndex = 2;
<%case "-1d"%>
document.QForm.FMMod.selectedIndex = 3;
<%case "-1w"%>
document.QForm.FMMod.selectedIndex = 4;
<%case "-1m"%>
document.QForm.FMMod.selectedIndex = 5;
<%case "-1y"%>
document.QForm.FMMod.selectedIndex = 6;
<%case "since"%>
document.QForm.FMMod.selectedIndex = 7;
<%case else%>
document.QForm.FMMod.selectedIndex = 0;
<%end select%>

document.QForm.FMModDate.value = "<%=FMModDate%>";

document.QForm.DocAuthorRestriction.value = "<%=DocAuthorRestriction%>";
}
//-->
</SCRIPT>



<FORM NAME="QForm" ACTION="<%=QueryForm%>" METHOD=POST>

<!-- -->

<table width=500>

<tr>
<td>Enter your query:</td>
<td><INPUT TYPE="TEXT" NAME="SearchString" SIZE="51" MAXLENGTH="100" VALUE=""></td>
</tr>

<tr>
<td align="right" colspan=2>Document author:
<INPUT TYPE="TEXT" NAME="DocAuthorRestriction" SIZE="27" MAXLENGTH="100" VALUE="">
<td>
</tr>

<tr>
<td align="right" colspan=2>Where File Size is:
<SELECT NAME="FSRest">
<!-- <OPTION VALUE=" < " <%if FSRest = " < " then%>SELECTED <%end if%>>Less Than
<OPTION VALUE=" > " <%if FSRest = " > " then%>SELECTED <%end if%>>Greater Than
-->
<OPTION VALUE=" < " SELECTED>Less Than
<OPTION VALUE=" > " >Greater Than
</SELECT>

<SELECT NAME="FSRestVal">
<OPTION VALUE="any" SELECTED>any size
<OPTION VALUE="100" >100 bytes
<OPTION VALUE="1024" >1K bytes
<OPTION VALUE="10240" >10K bytes
<OPTION VALUE="102400" >100K bytes
<OPTION VALUE="1048576" >1M byte
<OPTION VALUE="10485760" >10M bytes
<OPTION VALUE="104857600" >100M bytes
<OPTION VALUE="other" >Other
</SELECT>

<INPUT TYPE="TEXT" NAME="FSRestOther" SIZE="12" MAXLENGTH="9" VALUE="">
</td>
</tr>

<tr>
<td align="right" colspan=2>Modified:
<SELECT NAME="FMMod">
<OPTION VALUE="any" SELECTED >at any time.
<OPTION VALUE="-10n">in the last 10 minutes.
<OPTION VALUE="-1h">in the last hour.
<OPTION VALUE="-1d">in the last day.
<OPTION VALUE="-1w">in the last week.
<OPTION VALUE="-1m">in the last month.
<OPTION VALUE="-1y">in the last year.
<OPTION VALUE="since">since GMT (yy/mm/dd) .
</SELECT>
<INPUT TYPE="TEXT" NAME="FMModDate" SIZE="12" MAXLENGTH="9" VALUE="">
</td>
</tr>

<tr>
<td align="right"><A HREF="ixtiphlp.htm">Tips for searching</A></td>
<td align="right">
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Execute">
<INPUT TYPE="RESET" NAME="Clear" VALUE="Clear">
</td>
</tr>
</table>

<INPUT TYPE="HIDDEN" NAME="SortBy" VALUE="rank[d]">
<INPUT TYPE="HIDDEN" NAME="ColChoice" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Scope" VALUE="/">

</FORM>

<BR>

<%if DebugFlag then%>
<PRE>
SearchString = <%=SearchString%>
DocAuthorRestriction = <%=DocAuthorRestriction%>
FSRest = <%=FSRest%>
FSRestVal = <%=FSRestVal%>
FSRestOther = <%=FSRestOther%>
FMMod = <%=FMMod%>
FMModDate = <%=FMModDate%>
SortBy = <%=SortBy%>
Colset = <%=Colset%>
Scope = <%=Scope%>
NewQuery = <%=CStr(NewQuery)%>
UseSavedQuery = <%=CStr(UseSavedQuery)%>
</PRE>
<%end if%>

<%
if NewQuery then
set Session("Query") = nothing
set Session("Recordset") = nothing
NextRecordNumber = 1
set Q = Server.CreateObject("ixsso.Query")

Composer = ""
TheQuery = ""

if SearchString <> "" then
if Left( SearchSting, 1 ) <> "@" AND Left( SearchString, 1 ) <> "#" AND Left( SearchString, 1 ) <> "$" then
TheQuery = "@Contents " + SearchString
else
TheQuery = SearchString
end if

Composer = " & "
end if

if FSRestVal <> "any" then
if FSRestVal <> "other" then
TheQuery = "(@Size " + FSRest + FSRestVal + ") " + Composer + TheQuery
else
TheQuery = "(@Size " + FSRest + FSRestOther + ") " + Composer + TheQuery
end if

Composer = " & "
end if

if DocAuthorRestriction <> "" then
TheQuery = "(@DocAuthor " + DocAuthorRestriction + ") " + Composer + TheQuery

Composer = " & "
end if

if FMMod <> "" AND FMMod <> "any" then
if FMMod <> "since" then
TheQuery = "(@Write > " + FMMod + ") " + Composer + TheQuery
else
TheQuery = "(@Write > " + FMModDate + ") " + Composer + TheQuery
end if
end if

%> <%if DebugFlag then%> TheQuery = <%=TheQuery%> <%end if%> <%

Q.Query = TheQuery

Q.SortBy = SortBy
if Scope <> "/" then
set Util = Server.CreateObject("ixsso.Util")
Util.AddScopeToQuery Q, Scope, "DEEP"
set Util = nothing
end if
if ColSet = 1 then
Q.Columns = "DocTitle, vpath, path, filename, size, write, characterization, rank"
RecordsPerPage = 10
elseif ColSet = 2 then
Q.Columns = "vpath, path"
RecordsPerPage = 200
elseif ColSet = 3 then
Q.Columns = "filename, vpath, size, write"
RecordsPerPage = 25
end if

set RS = Q.CreateRecordSet("nonsequential")
RS.PageSize = RecordsPerPage
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

if SearchString <> "" then
Response.Write " matching the query " & chr(34) & "<I>"
Response.Write SearchString & "</I>" & chr(34) & ".<P>"
end if
%>
</PRE>

<table border=0>
<colgroup width=105>
<% 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.
' Graphically indicate rank of document with list of stars (*'s).

if NextRecordNumber = 1 then
RankBase=RS("rank")

if RankBase>1000 then
RankBase=1000
elseif RankBase<1 then
RankBase=1
end if
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 class="RecordTitle">
<td align="right" valign=top class="RecordTitle">
<%= NextRecordNumber%>.
</td>
<td><b class="RecordTitle">
<%if VarType(RS("DocTitle")) = 1 or RS("DocTitle") = "" then%>
<a href="<%=RS("vpath")%>" class="RecordTitle"><%= Server.HTMLEncode( RS("filename") )%></a>
<%else%>
<a href="<%=RS("vpath")%>" class="RecordTitle"><%= Server.HTMLEncode(RS("DocTitle"))%></a>
<%end if%>
</b></td>
</tr>
<tr>
<td valign=top align=left>
[img]"<%=stars%>"> <br[/img]
<%
' Construct the URL for hit highlighting
WebHitsQuery = "CiWebHitsFile=" & Server.URLEncode( RS("vpath") )
WebHitsQuery = WebHitsQuery & "&CiRestriction=" & Server.URLEncode( Q.Query )
WebHitsQuery = WebHitsQuery & "&CiBeginHilite=" & Server.URLEncode( "<b class=Hit>" )
WebHitsQuery = WebHitsQuery & "&CiEndHilite=" & Server.URLEncode( "</b>" )
WebHitsQuery = WebHitsQuery & "&CiUserParam3=" & QueryForm
' WebHitsQuery = WebHitsQuery & "&CiLocale=" & Q.LocaleID
%>
<a href="oop/qsumrhit.htw?<%= WebHitsQuery %>">[img]"hilight.gif"[/img] Summary</a>
<br>
<a href="oop/qfullhit.htw?<%= WebHitsQuery %>&CiHiliteType=Full">[img]"hilight.gif"[/img] Full</a>
</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 class="RecordStats"><a href="<%=RS("vpath")%>" class="RecordStats" 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 the index is out of date, display the fact -->

<%if NOT Q.OutOfDate then%>
<P>
<I>The index is up-to-date.</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 ' BUGBUG - use RS.Supports(adMovePrevious)%>
<td align=left>
<form action="<%=QueryForm%>" method="post">
<INPUT TYPE="HIDDEN" NAME="SearchString" VALUE="<%=SearchString%>">
<INPUT TYPE="HIDDEN" NAME="DocAuthorRestriction" VALUE="<%=DocAuthorRestriction%>">
<INPUT TYPE="HIDDEN" NAME="FSRest" VALUE="<%=FSRest%>">
<INPUT TYPE="HIDDEN" NAME="FSRestVal" VALUE="<%=FSRestVal%>">
<INPUT TYPE="HIDDEN" NAME="FSRestOther" VALUE="<%=FSRestOther%>">
<INPUT TYPE="HIDDEN" NAME="FMMod" VALUE="<%=FMMod%>">
<INPUT TYPE="HIDDEN" NAME="FMModDate" VALUE="<%=FMModDate%>">
<INPUT TYPE="HIDDEN" NAME="SortBy" VALUE="<%=SortBy%>">
<INPUT TYPE="HIDDEN" NAME="Colset" VALUE="<%=ColChoice%>">
<INPUT TYPE="HIDDEN" NAME="Scope" VALUE="<%=Scope%>">
<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.
This button retrieves the next page of documents for the query.
-->

<%if Not RS.EOF then%>
<td align=right>
<form action="<%=QueryForm%>" method="post">

<INPUT TYPE="HIDDEN" NAME="SearchString" VALUE="<%=SearchString%>">
<INPUT TYPE="HIDDEN" NAME="DocAuthorRestriction" VALUE="<%=DocAuthorRestriction%>">
<INPUT TYPE="HIDDEN" NAME="FSRest" VALUE="<%=FSRest%>">
<INPUT TYPE="HIDDEN" NAME="FSRestVal" VALUE="<%=FSRestVal%>">
<INPUT TYPE="HIDDEN" NAME="FSRestOther" VALUE="<%=FSRestOther%>">
<INPUT TYPE="HIDDEN" NAME="FMMod" VALUE="<%=FMMod%>">
<INPUT TYPE="HIDDEN" NAME="FMModDate" VALUE="<%=FMModDate%>">
<INPUT TYPE="HIDDEN" NAME="SortBy" VALUE="<%=SortBy%>">
<INPUT TYPE="HIDDEN" NAME="Colset" VALUE="<%=ColChoice%>">
<INPUT TYPE="HIDDEN" NAME="Scope" VALUE="<%=Scope%>">
<INPUT TYPE="HIDDEN" name="pg" VALUE="<%=CurrentPage+1%>" >
<INPUT TYPE="HIDDEN" NAME = "RankBase" VALUE="<%=RankBase%>">

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

<!--#include file ="is2foot.inc"-->

</BODY>
</HTML>