Toon posts:

[VB.NET / ASP.NET] Group By in Array of Datatable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ik probeer een pagina te maken, waar de meeste gezochte woorden getoond worden.
Ik sla de woorden op in een kolom, waar dus meerdere woorden kunnen staan gescheiden door een spatie. Ik haal dan de dataset op loop er doorheen, en doe een split(" ") op de kolom.
Vervolgens loop ik dan door de array.
Maar dan? Hoe kan ik een woord ergens opslaan en het aantal ophoogt (dus met 1) en dan bij het volgende record weer makkelijk benader?
Ik heb, heel stiekem, gedacht om het sessie object te gebruiken, maar daar zit weer geen sorteer functie op. Arrays gebruiken, kan volgens mij niet, omdat de index een integer getal moet zijn.
Heeft iemand een oplossing voor mij?


alvast bedankt.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
programmeren != lijmen

meerdere 'woorden' opslaan doe je in meerdere records, en niet in één 'kolom'.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op maandag 11 april 2005 @ 15:13:
programmeren != lijmen

meerdere 'woorden' opslaan doe je in meerdere records, en niet in één 'kolom'.
Dus jij zegt, als iemand zoekt op got bijvoorbeeld met de woorden: vb.net asp.net group by array,
dat je dan 5 records moet toevoegen?

[ Voor 5% gewijzigd door Verwijderd op 11-04-2005 15:17 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:56

gorgi_19

Kruimeltjes zijn weer op :9

Ja

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Verwijderd schreef op maandag 11 april 2005 @ 15:17:
[...]


Dus jij zegt, als iemand zoekt op got bijvoorbeeld met de woorden: vb.net asp.net group by array,
dat je dan 6 records moet toevoegen?
Tenzij er op een van die woorden al gezocht is, daarvoor ga je dan van het bestaande record de count ophogen met 1.

Als je wil opslaan op welke woorden het meest gezocht is zul je nou eenmaal heel veel data op moeten slaan...

My personal website


Verwijderd

Topicstarter
Ok, bedankt voor de info.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je kunt splitten op de separator en dan de upper bound van de resulterend array bepalen, maar ik kan het alleen maar eens zijn met whoami. Hoe wil je bijvoorbeeld woorden wijzigen of verwijderen uit de kolom? Of bijvoorbeeld het meestvoorkomende woord over alle pagina's bepalen? Zaken die moeilijk worden als je het opslaat op de door jou voorgestelde manier.

Ik zou een tabel maken met 2 kolommen: paginanummer en woord.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
P_de_B schreef op maandag 11 april 2005 @ 15:20:
Of bijvoorbeeld het meestvoorkomende woord over alle pagina's bepalen?
Dat was nou precies mij vraag :P
Maar ik denk ook dat het een lastig stukje wordt als je het zo wil doen.
Denk dat ik maar een nieuwe tabel maak hiervoor.

Maar ik moet wel zeggen, dat de performance hier niet op vooruit gaat. Voor elk woord een query uitvoeren, maar ja tis niet anders.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Verwijderd schreef op maandag 11 april 2005 @ 15:27:
[...]


Dat was nou precies mij vraag :P
Maar ik denk ook dat het een lastig stukje wordt als je het zo wil doen.
Denk dat ik maar een nieuwe tabel maak hiervoor.
Hoe bedoel je ?
Je maakt een tabel die er bv zo uit ziet:
code:
1
2
3
4
zoekwoord         aantal_zoekopdrachten
bliep                       1
blaat                       5
melp                       3
Maar ik moet wel zeggen, dat de performance hier niet op vooruit gaat. Voor elk woord een query uitvoeren, maar ja tis niet anders.
Dat zullen we nog wel eens zien....
Tip: lees eens eea over data-normalisatie etc....

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja, de tabel zou er zo ongeveer uit gaan zien.
En de tip? Al lang gedaan. :p

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:56

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op maandag 11 april 2005 @ 15:27:
Maar ik moet wel zeggen, dat de performance hier niet op vooruit gaat. Voor elk woord een query uitvoeren, maar ja tis niet anders.
En je verwacht dat de performance er op vooruit gaat als je handmatig steeds moet laten splitten en bijhouden hoe vaak ieder woord gebruikt is?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op maandag 11 april 2005 @ 15:40:
[...]

En je verwacht dat de performance er op vooruit gaat als je handmatig steeds moet laten splitten en bijhouden hoe vaak ieder woord gebruikt is?
Voor de meeste bezoekers: ja. Het splitsen zal alleen gebeuren als je de statistieken opgaat vragen, wat niet erg vaak gebeurt. En een zoekactie gebeurt veel vaker.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:56

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op maandag 11 april 2005 @ 15:48:
[...]


Voor de meeste bezoekers: ja. Het splitsen zal alleen gebeuren als je de statistieken opgaat vragen, wat niet erg vaak gebeurt. En een zoekactie gebeurt veel vaker.
Dan plaats je desnoods de zaken in een queue en laat je een timer geregeld alles langslopen? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op maandag 11 april 2005 @ 15:49:
[...]

Dan plaats je desnoods de zaken in een queue en laat je een timer geregeld alles langslopen? :)
haha, die oplossing gaat mij wat te ver :P

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik weet niet op hoeveel woorden er gezocht wordt maar een aantal simpele insert en/of update queries duren echt niet zo lang.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1