Solved Zoekfunctie issues (minimum lengte + stopwords)

This post has been solved

Five-seveN

Well-known member
Crowdfunder FE
Ik wist dat er een topic over God was, ik zoek hem vervolgens enorm simpel, en ik vind niks terug?

unknown.png

unknown.png

unknown.png


God kan niet gevonden worden op BG :thinking:
 
vreemd, vanaf vier moet wel werken en dat doet het ook bij de meeste woorden, behalve als ge het woord 'zero' ingeeft.
 
als ik zoek op

in een god

dan vind ik ook niks


Als ik zoek op

"in een god"

dan vind ik ook niks


Behoorlijk waardeloze zoekfunctie imo
telkens woorden van 3 of minder letters. typ geloof en je vindt het wel.


geen idee waarom die beperking er is. Misschien omdat een zoekfunctie misbruikt kan worden om het systeem te doen crashen. Stel dat iemand op een woord als de, en of een zoekt, of eender welk woord dat bijna om de paar zinnen gebruikt wordt, gaat die zoekfunctie redelijk hard moeten werken. Doe die search met een aantal bots en BG ligt er uit.
 
Het is inderdaad gelinkt aan technische limitaties. Een kortverhaaltje voor de mensen die het interessant vinden!

Om een searchfuntie in deze context te kunnen laten werken zijn er verschillende mogelijkheden, waarvan ik ervaring heb met 2 (en afweet van een 3e).

Op "het vorig forum" gebruikten we (omdat het daar niet anders kon) het ingebouwde systeem van kruisreferenties: er was een tabel met alle (tienduizenden) woorden die ooit gebruikt waren (en automatisch gecontroleerd/aangevuld met elke nieuwe post, deze was wegens het potentieel héél groot aantal woorden by default gelimiteerd op een lengte van minimum 4 (of 5?) met een custom whitelist van tientallen toegelaten korte woorden zoals bvb "CTF" die we met de community verzameld hadden in de beginjaren), een tabel met alle (paar tientallen miljoen) posts en een crossref tabel met tien/honderdtallen miljoenen rijen... :crazy: Die tabellen waren ook tientallen gigabytes groot en waren een pure nachtmerrie om mee te werken. Er was een tool om die crossref tabel te genereren en dat liep muurvast na paar weken lopen, en toen zat ie nog maar aan 10% van alle posts ofzo :unsure:

Het was bij ons op bepaalde momenten zelfs zo buggy (de befaamde white pages bij bepaalde zoekwoorden) dat als we tickets gingen gaan openen bij vBulletin dat ze ons compleet zot verklaarden en zeiden "de forumsoftware is daar niet voor ontworpen" en de ticket gewoon afsloot :D

En zoals @Tonerider al aangaf, die search abusen was een zeer populaire aanvalsvector 😭

Een tweede manier is het over te laten aan de database zelf (full text searching, dit is wat hier gebruikt wordt). Standaard staat de minimum limiet op 4 maar wij hebben die bij de opstart al verlaagt naar 3 (lager wordt ook echt afgeraden om een soortgelijke reden als hierboven).

"God" zou dus wel degelijk resultaten moeten opgeven, dus dat kijken we zeker es na :thinking:

Een derde manier is te werken met een (betaalde) add-on en ElasticSearch die het zoekwerk volledig overneemt, maar dat zou onze totale hostingkosten met een te grote factor laten stijgen en is op dit moment zeker niet aan de orde :D
 
Laatst bewerkt:
Het is inderdaad gelinkt aan technische limitaties. Een kortverhaaltje voor de mensen die het interessant vinden!

Om een searchfuntie in deze context te kunnen laten werken zijn er verschillende mogelijkheden, waarvan ik ervaring heb met 2 (en afweet van een 3e).

Op "het vorig forum" gebruikten we (omdat het daar niet anders kon) het ingebouwde systeem van kruisreferenties: er was een tabel met alle (tienduizenden) woorden die ooit gebruikt waren (en automatisch gecontroleerd/aangevuld met elke nieuwe post, deze was wegens het potentieel héél groot aantal woorden by default gelimiteerd op een lengte van minimum 4 (of 5?) met een custom whitelist van tientallen toegelaten korte woorden zoals bvb "CTF" die we met de community verzameld hadden in de beginjaren), een tabel met alle (paar tientallen miljoen) posts en een crossref tabel met tien/honderdtallen miljoenen rijen... :crazy: Die tabellen waren ook tientallen gigabytes groot en waren een pure nachtmerrie om mee te werken. Er was een tool om die crossref tabel te genereren en dat liep muurvast na paar weken lopen, en toen zat ie nog maar aan 10% van alle posts ofzo :unsure:

Het was bij ons op bepaalde momenten zelfs zo buggy (de befaamde white pages bij bepaalde zoekwoorden) dat als we tickets gingen gaan openen bij vBulletin dat ze ons compleet zot verklaarden en zeiden "de forumsoftware is daar niet voor ontworpen" en de ticket gewoon afsloot :D

En zoals @Tonerider al aangaf, die search abusen was een zeer populaire aanvalsvector 😭

Een tweede manier is het over te laten aan de database zelf (full text searching, dit is wat hier gebruikt wordt). Standaard staat de minimum limiet op 4 maar wij hebben die bij de opstart al verlaagt naar 3 (lager wordt ook echt afgeraden om een soortgelijke reden als hierboven).

"God" zou dus wel degelijk resultaten moeten opgeven, dus dat kijken we zeker es na :thinking:

Een derde manier is te werken met een (betaalde) add-on en ElasticSearch die het zoekwerk volledig overneemt, maar dat zou onze totale hostingkosten met een te grote factor laten stijgen en is op dit moment zeker niet aan de orde :D
Kunt ge ineens eens zien waarom het woord zero niets geeft. Neemt die dat te letterlijk :p
 
3 letters zijn te weinig voor de zoekfunctie.
Ons infrateam heeft dees ondertss permanent gefixed :)

Kunt ge ineens eens zien waarom het woord zero niets geeft. Neemt die dat te letterlijk :p
Er zit een hardcoded lijst met Engelse "stopwords" in waartegen ie botst, dit oplossen vergt een tikkeltje meer voeten in de aarde :unsure:

Edit: ik vond het al zo raar dat die lijst hardcoded in de software gebakken zat, maar dat is een limiet van de database zelf. Daar gaan we niet aan beginnen prutsen :D
 
Laatst bewerkt:
Terug
Bovenaan