Hjälp med indexserver

ASP

12 svar · 234 visningar · startad av qwerty

Medlem sedan jan. 2001391 inlägg
Trådstart#1

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?

Medlem sedan jan. 2001391 inlägg
#2

Är det ingen som kan detta?

Man skulle kunna säga att det är lite panik...

Medlem sedan juni 2000277 inlägg
#3

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>

Medlem sedan jan. 2001391 inlägg
#4

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")
Medlem sedan juni 2000277 inlägg
#5

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!

Medlem sedan jan. 2001391 inlägg
#6

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>
Medlem sedan jan. 2001391 inlägg
#7

ingen som kan?

Medlem sedan juni 2000277 inlägg
#8

Ä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?

Medlem sedan jan. 2001391 inlägg
#9

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>
Medlem sedan juni 2000277 inlägg
#10

oQ.MaxRecords

Medlem sedan jan. 2001391 inlägg
#11

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?

Medlem sedan maj 200124 inlägg
#12

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.

Medlem sedan jan. 2001391 inlägg
#13

...och med statiska frågor menar du?

261 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)