16. august 2005 - 23:11Der er
1 kommentar og 1 løsning
Avanceret søgning
Hej
Jeg har en tabel med et antal rækker, den vil formentligt ikke komme meget over 10.000, men den vil ligge deroppe af. Tabellen indeholder en del felter, hvoraf der skal søges i en række tekstuelle felter så som navn, beskrivelse, genre osv.
Dette er løst vha. en normal full text search som har bygget sit catalog ud fra de søgbare felter.
Mit problem kommer dog i og med at der i original tabellen er andre felter som spiller en rolle mht. hvor højt rangeret søgeresultaterne skal forekomme. F.eks har de en rate fra 1-10, som alt efter hvor høj den er skal give et plus til den enkelte rækkes search rank. På samme måde er der en bit kolonne som ligeledes skal tælle som et plus såfremt den er sand.
En anden detalje som også ville være rar, var såfremt det var muligt at vægte de individuelle kolonner. Således tæller det meget højere hvis søgestrengen blev fundet i name kolonnen, frem for i description kolonnen. Dette er dog på ingen måde livs nødvendigt, det er ovenstående problemstilling derimod.
Jeg modtager med kyshånd hints til hvorledes en sådan vægtet søgning kan implementeres.
Jeg kommer lige med min nuværende tanke, som jeg dog ikke har efterprøvet på nogen måde endnu.
Jeg foretager en søgning via enten CONTAINSTABLE eller FREETEXTTABLE og nummererer de returnerede rækker 1,2,3...n (hvorledes kan dette gøres?) Således at den første/øverste række har nummer 1, og den nederste har nummer n. Herefter kan jeg udregne en "bonus" procentsats som hver række får tildelt, baseret på de forskellige kolonner som har indflydelse på search ranken. Dvs. at de sidste kolonner (som automatisk er med den dårligste full text match) vil ikke kunne komme op og konkurrere med de øverst returnerede rækker på nogen måde, om så de fik en search rank bonus på 100%, hvorimod rækker i midten vil få større indflydelse ved en bonus på 20-50%. Jo tættere på toppen vi kommer, jo større betydning vil search rank bonusen have, hvilket kun kan være godt da de øverste rækker naturligvis er dem som har matchet full text søgningen bedst, og altså oftest vil være de korrekte søgeresultater.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.