webForumDet fria alternativet

Söktjänst, sortera förekomsten av sökord

ASP

2 svar · 227 visningar · startad av P@ttan

Medlem sedan okt. 20052 inlägg
Frågan#1

HEj.
Har skapat en söktjänst som söker igenom en databas (SQL server 2000) efter företag och deras produkter.
Allt fungerar kanon men alla träffarna är idag sorterade efter företagsnamnet i en alfabetisk lista. Vill att den ska vara lite smartare än så. Tänkte mig att den skulle räkna antalet träffar på sökordet för varje företag och sortera efter det.

Jag har genom en sql fråga tagit fram alla företag som innehåller sökordet. Resultatet får jag sedan i en två-dimentionell array via GetRows().

Jag förmodar att man måste loopa igenom denna array och räkna sökordet. Men vart spara resultatet. och inte minst hur sorterar man arrayen sedan.

Har varit inne lite på att man kan göra det direkt i SQL-frågan. Hitta detta:

select * from t
   where falt like '%sökord%'
  order by (len(falt)-len(replace(falt,'sökord',''))/len('sökord') desc

Detta ska tydligen räkna ut förekomsten av sökordet. Underbart tänkte jag men när jag kör det så får jag följande fel
Error: Argument data type ntext is invalid for argument 1 of len function.

Så. Där är jag nu. Hur går jag vidare för att sortera efter antal förekomster av sökordet?

Medlem sedan okt. 20041 556 inlägg
#2

Fråga: varför har du ntext-format?
ntext är unicode.

Medlem sedan okt. 20052 inlägg
#3

Bra fråga. Det är inte jag som från grunden skapat databasen. Så jag vet inte varför..

250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)