Ga naar inhoud
  • 0

Complexe zoekopdracht: varianten zoeken bij 7 parameters


AvD

Vraag

De databank beschrijft vele tienduizenden gelijksoortige elementen (laat ons ze "dingen" of "voorwerpen" noemen).

 

Elk element wordt gekenmerkt door 7 eigenschappen. Van elke eigenschap bestaan enkele tot vele tientallen varianten.

 

Probleem: vertrekkend van één element moet de hele databank doorzocht worden op varianten die zeer goed gelijken op dat ene element. "Zeer goed gelijken" betekent dat maximaal twee eigenschappen elk één gradatie naar onder of naar boven mogen afwijken.

 

Dit onderzoek moet daarna gebeuren voor het volgende element, en zo tot aan het einde van de vele tienduizenden lange reeks. We zoeken dus "paren' (het gaat niet om een huwelijksbureau :wink: ).

 

Met de hand is dit natuurlijk niet te doen. Met Filemaker wel?

Link naar reactie

12 antwoorden op deze vraag

Aanbevolen berichten

  • 0

lijkt me zeker te doen,en had al wat geschreven maar onderstaande roept nog een vraag op

"Zeer goed gelijken" betekent dat maximaal twee eigenschappen elk één gradatie naar onder of naar boven mogen afwijken.

IS dit minimum 2 eigenschappen met max 1 gradatie of mogen er slechts 1 of 2 eigenschappen verwant zijn.(3 en meer zou dan te zeer gelijkend zijn)

Link naar reactie
  • 0

Twee items worden als een goed op elkaar lijkend paar beschouwd als tenminste 5 van de 7 eigenschappen gelijk zijn. De twee overige mogen slechts één gradatie naar boven of naar onder verschillen.

 

Voorbeeld bij twee auto's:

 

1) Zelfde Merk

2) Zelfde type

3) Zelfde afwerking

4) Zelfde bouwjaar

5) Zelfde binnenbekleding

 

Maar:

 

6) Kleur: verschilt één tint (de ene is iets donkerder)

7) Motorvermogen: de ene heeft 75 pk, de andere 80 (in een reeks van 55, 60, 75, 80 en 120).

Link naar reactie
  • 0

Snappie,had oorspronkelijk gedacht aan een progressief herhalend zoekscript waarbij geloopt wordt maar dit is niet doenbaar met tienduizenden Recs...Maar daar er 5 Gelijken zijn is het misschien wel te doen om alle mogelijke varianten van 5 (gelijke) eigenschappen op te slaan in een geindexeerde calculatie.

12345

23456

12346

12347

enz...

Op deze manier kan "misschien" al uitgefilterd (vanaf 5 tot 7 gelijkaardige)worden tot een duizendtal records waarop wel een loop kan losgelaten worden die telkens de 2 overige varianten evalueert met behulp van 1 of meerdere globale variabelen en verder filtert.

(Eventueel de loop vervangen door een Calculatie of een custom ?)

 

Gezocht wordt bvb globale 1234567

Calculatie Found is 12457

Vergeleken wordt 3 en 6 --> vallen beide binnen het volgend bereik van

de betreffende variant : OK else Omit

Link naar reactie
  • 0

Even heel kort.

 

Mijn eerste ingeving is de troi text plugin met de functies ANDText, ORText ed.

Zie het nog niet concreet voor me, maar lijkt me de moeite van het bekijken waard.

 

Wat losse gedachten:

... je kan bepalen of er minimaal 5 gelijk zijn ...

... je kan de verschillen boven tafel halen ...

... verschillen zijn te vergelijken ...

 

HTH

 

rmw

Link naar reactie
  • 0
Hier zitten we waarschijnlijk al vast: we weten helemaal niet dat er vijf gelijken zijn

Daarom al de mogelijke varianten van 5 (gelijke) eigenschappen op te slaan in een geindexeerde calculatie en met een gtrr uit te filteren

wat gelijk is aan

... je kan bepalen of er minimaal 5 gelijk zijn ...

Calc--> Mercedes 190 1999 Blauw 80PK

Mercedes 1999 Blauw 80PK Color2

Mercedes Blauw 80PK Color2 Servo

190 1999 Blauw 80PK Color2 enz...

Zou mits geindexeerd vrij vlot de resultaten van vijf identieken moeten tonen.

 

Vervolgens evalueren oftewel de verschillen vergelijken.

Link naar reactie
  • 0

Prima, maar gaan we dan geen vertigineuze combinaties krijgen?

Ik denk maar:

op de eerste plaats alle mogelijke automerken;

op de tweede plaats alle mogelijke bouwjaren vanaf pakweg 1900 tot op heden;

op de derde plaats alle kleurcodes van alle automerken van alle bouwjaren,

enzovoort tot en met de zevende eigenschap.

Dat worden toch onvooorstelbaar grote keys. Die krijgt FileMaker nooit geindexeerd (andere software trouwens ook niet). Rony en ik zijn al eens vastgelopen op een uniek identifier-systeem gebaseerd op machten van 2 (vergelijkbaar met de modifier keys-identificatie in FileMaker). Dit is weer zoiets. Daarom dacht ik dat we het meer moesten gaan zoeken in de richting van bijzonder complexe loopscripts.

Link naar reactie
  • 0

Hello,

 

Zonder het technisch verder uit te werken (en zonder Koens oplossing te bekijken - Shame on me!) zie ik het zo:

 

1. Maak 7 calculations op basis van self-join relaties van de 7 eigenschappen naar zichzelf. Dit werkt maar uiteraard in de mate dat je de verschillen in gradaties (max 2) ook relationeel kan vertalen. De 3 uitkomsten van deze calc zijn bv. 0 (volledige match), 1 (1 of 2 grad verschil) en 2 (geen match)

 

2. Voer nu op basis van deze calculations de nodige zoekopdrachten uit. Voor de gelijkenis van 5 eigenschappen op een totaal van 7 eigenschappen kan je 7!/5!(7-5)! combinaties maken ('AND' zoekopdrachten op basis van de calcwaarde 0), oftwel 15 zoekopdrachten - voor zover mijn kennis van de combinatieleer nog accuraat is. Elke zoekopdracht bestaat uit 5 keer de waarde '0' en 2 keer de waarde '<2' voor de afwijkingen op de andere 2 eigenschappen (0-0,0-1,1-0,1-1). Op deze wijze zou je de klus met zo'n 15 zoekopdrachten moeten kunnen klaren.

 

 

Nogmaals, deze oplossing werkt alleen als je het verschil in gradaties relationeel kan vertalen.

 

Ik hoop dat deze post enigszins een bijdrage kan leveren...

 

 

 

 

 

 

gr Jeroen

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...