[MSSQL] full text search resultaten, nooit relevancy van1000

Pagina: 1
Acties:

  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
Ik gebruik MSSQL 2000 en heb daar op een table fulltext search geinstalleerd (en er heeft een succesvolle "full population" plaats gevonden).

Als ik dan onderstaand sql-statement uitvoer krijg ik nooit een rank van 1000.

code:
1
2
3
4
5
SELECT id, rank 
FROM CONTAINSTABLE
(tabelnaam, filedata, '"twee woorden"', 25) as a, tabelnaam b 
WHERE a.[KEY] = b.id
ORDER BY rank desc


de "twee woorden" waar ik op zoek komen letterlijk in de tekst voor (ook in zelfde volgorde) maar ik krijg bijvoorbeeld maar een ranking van 16. Ik zou dan toch een rank van 1000 verwachten of zie ik dat verkeerd?

ik kan natuurlijk wel die 16 aan 100% gelijkstellen en dan alle andere rankings daaraan gaan aanpassen maar misschien doe ik wel iets fout, kan natuurlijk ook :)

Werken is gezond, laat het daarom over aan de zieken!


Verwijderd

Misschien vindtie twee woorden maar weinig, en heeftie zo van; daar geef ik geen 1000 voor terug... De rank zal je sowieso moeten converteren naar wat begrijplijks, zoals je dus al sugereerde.

  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
Verwijderd schreef op dinsdag 06 september 2005 @ 13:50:
Misschien vindtie twee woorden maar weinig, en heeftie zo van; daar geef ik geen 1000 voor terug... De rank zal je sowieso moeten converteren naar wat begrijplijks, zoals je dus al sugereerde.
op een zin van 15 woorden geeft ie als rank ook 16 terug.

Werken is gezond, laat het daarom over aan de zieken!


Verwijderd

hmmm, okay, staat me ook wat bij dat als je meerdere woorden invuldt er voor elk woord apart wordt gezocht in de context, misschien dat dat het probleem is. Ik zal ff kijken hoe je kan forceren dat hij het als gehele string ziet....

  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
Verwijderd schreef op dinsdag 06 september 2005 @ 14:03:
hmmm, okay, staat me ook wat bij dat als je meerdere woorden invuldt er voor elk woord apart wordt gezocht in de context, misschien dat dat het probleem is. Ik zal ff kijken hoe je kan forceren dat hij het als gehele string ziet....
als je het kunt vinden graag.

ik heb nu alvast eens dit geprobeerd maar dan krijg ik nog een lagere ranking, dus dit is het ook niet

code:
1
2
3
4
5
SELECT id,rank 
FROM CONTAINSTABLE
(tabelnaam, filedata, '"woord1" and "woord2" and "woord3" and "woord4" and "woord5"', 25) as a, tabelnaam b 
WHERE a.[KEY] = b.id
ORDER BY rank desc

[ Voor 9% gewijzigd door haroldd op 06-09-2005 14:13 ]

Werken is gezond, laat het daarom over aan de zieken!


Verwijderd

Kan het ff niet zo snel vinden... Wat zijn je bevindingen met de FREETEXTTABLE? Verder hoef je je niet zo druk te maken om de waarde van de rank, als de onderlinge verschillen van de rank tussen de terug gegeven records maar reeel zijn. Of die nu 2, 4 en 8 zijn of 200, 400 en 800, als je dit vertaald naar procenten (wat het duidelijkste een beeld geeft) zal dit uiteindelijk hetzelfde weergeven.

  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
Verwijderd schreef op dinsdag 06 september 2005 @ 14:32:
Kan het ff niet zo snel vinden... Wat zijn je bevindingen met de FREETEXTTABLE? Verder hoef je je niet zo druk te maken om de waarde van de rank, als de onderlinge verschillen van de rank tussen de terug gegeven records maar reeel zijn. Of die nu 2, 4 en 8 zijn of 200, 400 en 800, als je dit vertaald naar procenten (wat het duidelijkste een beeld geeft) zal dit uiteindelijk hetzelfde weergeven.
met freetexttable krijg ik als hoogste score 122, vervolgens resultaten met 93, 87, 80, 54, 49

dan zet ik die gewoon af op 100% schaal en dan ziet het er wel leuk uit :)

bedankt voor de hulp

Werken is gezond, laat het daarom over aan de zieken!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 10:06

curry684

left part of the evil twins

Ranking is a statistical measure of how relevant your rows are to your search phrase. Do not consider this to be a quantitative measure (for instance, you can’t consider a row with a rank of 500 to be five times as relevant as a row with a rank of 100); rather, consider ranking a way to order your search results. This will return rows that are likely to be most relevant to your search phrase.

Professionele website nodig?


  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
even een ander vraagje:

in de database zitten in een "image-veld" de bestanden opgeslagen die ik doorzoek met full text search.
Nu wil ik graag bij de zoekresultaten het stukje tekst rondom het gevonden woord weergeven.
dus als ik zoek op het woord "fiets" dat dan bij de resultaten komt te staan: "... jan raas heeft geen normale fiets maar een racemodel...".

Is het mogelijk om op een of andere manier een stuk tekst uit die bestanden te selecteren? Als het gewoon "varchar-velden" waren geweest was het geen probleem maar nu heb ik geen idee hoe deze tekst eruit te halen. Het is ook lastig zoeken hierop met google :s

Werken is gezond, laat het daarom over aan de zieken!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 10:06

curry684

left part of the evil twins

Je wil dus uit een willekeurige collectie van Word, Excel en textdocumenten quotes gaan slepen? Succes, dat kan niet :)

Professionele website nodig?


  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
curry684 schreef op dinsdag 06 september 2005 @ 15:41:
Je wil dus uit een willekeurige collectie van Word, Excel en textdocumenten quotes gaan slepen? Succes, dat kan niet :)
nee ik weet vanuit welk worddocument (ik weet het id van waar het in de database als binair bestand is opgeslagen). Hetzelfde als bij google en andere zoekmachines wordt gedaan.

als je bij google bijvoorbeeld zoekt op "fiets document doc" dan is de eerste hit een word document. Bij de omschrijving staat ook een stukje tekst die letterlijk zo uit het word document is gehaald. hoe kan ik die tekst zo uit het word document halen?

Werken is gezond, laat het daarom over aan de zieken!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 10:06

curry684

left part of the evil twins

Software van Google jatten die dat kan ;) Of via de COM-objecten van Word (interop ole ole) het bestand uitlezen een een searchactie doen. Maar SQL Server gaat het niet voor je doen :)

Professionele website nodig?


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:41
Bekijk anders dit topic eens
Verwijderd schreef op maandag 29 augustus 2005 @ 16:29:
Ja het is mogelijk. MSSQL Server heeft een filter in zich waardoor hij word, excel e.d. kan door zoeken. Je zou de whitepaper van http://support.microsoft....aspx?scid=kb;en-us;323739 moeten downloaden en het gedeelte lezen vanaf pag 22. Er zal een kolom bij moeten komen als deze er al niet is met de filetype zodat het juiste filer geselecteerd kan worden.

[ Voor 72% gewijzigd door sig69 op 06-09-2005 17:35 ]

Roomba E5 te koop


  • haroldd
  • Registratie: April 2004
  • Laatst online: 22-03 21:11
das mijn eigen topic waar je heen verwijst :p

dit is een vervolgvraag nu ik nog meer wil :)

Werken is gezond, laat het daarom over aan de zieken!


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:41
Niet gezien... 8)7

Roomba E5 te koop

Pagina: 1