Är det ingen som kan detta?
Man skulle kunna säga att det är lite panik...
------------------
Qwerty
Den som provar han testar...
12 svar · 203 visningar · startad av qwerty
Hej!
Jag har fått indexserver installerat på servern. Hur får jag min sökmotor att utnyttja detta? Har försökt söka i forumen men inte hittat något som hjälper mig.
Snälla någon.
Alltså: Vad ska jag ha för action i formuläret?
------------------
Qwerty
Den som provar han testar...
[Redigerat av qwerty den 27 apr 2001]
Är det ingen som kan detta?
Man skulle kunna säga att det är lite panik...
------------------
Qwerty
Den som provar han testar...
Hej
Gör en vanlig form sida på sidan som skall visa funna dokument kan i sitt enklaste utförande se ut så här:
<html> ... osv
<%
dim q, rs
Set q=Server.CreateObject("ixsso.Query")
q.query=Request.Form("txt")
q.Columns="filename,vpath,DocTitle"
q.Catalog="c:\inetpub"
q.MaxRecords=50
set rs=q.CreateRecordset("nonsequential")
do until rs.eof
%>
<a href="<%=rs("vpath")%>"><%=rs("DocTitle")%></a><br>
<%
rs.MoveNext
Loop
%>
...</html>
------------------
/peterbladh
Tjena!
Får följande felmess:
CreateRecordset error 'c0004002'
The Query property was not set.
/sok.asp, line 22
line 22 är:
set rs=q.CreateRecordset("nonsequential")
------------------
Qwerty
Den som provar han testar...
hm, jag testade koden själv först innan jag skickade den och här fungerar det. Men kolla att din textruta heter txt (på form-sidan). Kolla också att indexservern verkligen är startad och att katalogen är c:\inetpub.
Det där "The Query property was not set" är ett något kryptiskt felmeddelande som kan dyka upp lite när som när man jobbar med indexservern.
Lycka till!
------------------
/peterbladh
Nej, funkar inte.
Så här ser hela sidan ut. Jag har säkert gjort nån idiot-miss. Har du lust att titta på koden?
<body bgcolor="#FFFFFF">
<form name="form1" action="sok.asp">
sök:
<input type="text" name="txt">
<input type="submit" name="Submit" value="Skicka">
</form>
<%
dim q, rs
Set q=Server.CreateObject("ixsso.Query")
q.query=Request.Form("txt")
q.Columns="filename,vpath,DocTitle"
q.Catalog="c:\inetpub"
q.MaxRecords=50
set rs=q.CreateRecordset("nonsequential")
do until rs.eof
%>
<p><a href="<%=rs("vpath")%>"><%=rs("DocTitle")%></a><br>
<%
rs.MoveNext
Loop
%> </p>
</body>
------------------
Qwerty
Den som provar han testar...
[Redigerat av qwerty den 30 apr 2001]
Är det där en och samma sida? I så fall förstår jag att det inte funkar nr den laddas. för request.form("txt") får inte vara "tom" (vet inte varför, men det verkar vara så).
Som sagt; är index servern verkligen igång? finns det någon catalog och är den då satt till c:\inetpub ? Finns det några indexerade directorys?
------------------
/peterbladh
Fick igång det!
...med ett exempel som jag hittade under index server på www.iisfaq.com
Ett problem bara. Den listar typ hur många träffar som helst, och allt på samma sida. Man behöver väl inte göra som en vanlig paging utan det finns väl funktioner (i index server) för att begränsa antalet träffar och hur många som ska visas på varje sida?
Här kommer koden, vore kul om nån kunde tipsa mig om hur jag ska begränsa antalet träffar:
<%
session.LCID=1050
lcErrorMsg = ""
Set rs = RunQuery(Request.QueryString("query").Item(),Request.QueryString("virtual").item())
if TypeName(rs) <> "Recordset" then
lcErrorMsg = "Din sökning gav inga resultat.<br>Försök gärna igen."
end if
function RunQuery(lcQuery,lcVirtual)
if TypeName(lcVirtual) <> "String" then
lcVirtual = "/"
end if
if TypeName(lcQuery) <> "String" then
Set RunQuery = nothing
Exit Function
end if
Set oQ=Server.CreateObject("ixsso.Query")
oQ.query = lcQuery
oQ.columns = "DocTitle,vpath,hitcount,size,write,characterization,rank"
oQ.SortBy = "hitcount[d]"
Set oU=Server.Createobject("ixsso.util")
'*** Add only a few directories for searching
oU.AddScopeToquery oQ,"/","shallow"
oU.AddScopeToquery oQ,"/dokument","deep"
Set rs=oQ.CreateRecordset("nonsequential")
if TypeName(rs) <> "Recordset" then
Set RunQuery = nothing
exit function
end if
if rs.RecordCount < 1 then
Set RunQuery = nothing
else
' Return result RecordSet
Set RunQuery = rs
end if
End Function
%>
</head>
<body bgcolor="#FFFFFF">
<% If LEN(lcErrorMsg) > 0 then %>
<%= lcErrorMsg %>
<% Response.End
end if
%>
<p>
<p><span class="header" style="color:DarkRed"> Din sökning gav <%= rs.recordcount %>
resultat...</span></p>
<p>
<blockquote>
<table width="90%" class="body">
<% do while not rs.eof %>
<tr>
<td><b><%= rs.Fields("DocTitle")%></b></td>
</tr>
<tr>
<td><a href="<%= rs.Fields("vPath")%>"><%= rs.fields("vPath")%></a></td>
</tr>
<tr>
<td><%= rs.Fields("characterization") %><br>
<b>Träffar: <%= rs.Fields("hitcount")%> Senast uppdaterad: <%= rs.Fields("write") %></b>
<hr>
</td>
</tr>
<%rs.MoveNext
loop%>
</table>
------------------
Qwerty
Den som provar han testar...
[Redigerat av qwerty den 02 maj 2001]
Kan man begränsa antalet träffar per sida på något liknande sätt, eller måste man göra en paging själv?
------------------
Qwerty
Den som provar han testar...
Om du använder dig av statiska frågor
så får du paging automatisk.
Använder du asp som du gör i detta fall så måste du koda allt paging själv.