Jump to content
  • 0

Complexe zoekopdracht: varianten zoeken bij 7 parameters


AvD

Question

Posted

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?

12 answers to this question

Recommended Posts

  • 0
Posted

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)

  • 0
Posted

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).

  • 0
Posted

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

  • 0
Posted
Maar daar er 5 Gelijken zijn is het misschien wel te doen om

Hier zitten we waarschijnlijk al vast: we weten helemaal niet dat er vijf gelijken zijn. Dat is nu precies wat we zoeken: zijn er paren waarvan 5 van de 7 eigenschappen identiek zijn?

  • 0
Posted

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

  • 0
Posted
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.

  • 0
Posted

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.

  • 0
Posted

Ik heb er mijn hoofd op gekraakt en zat ook in de richting te zoeken wat al was voorgesteld, maar heb het over een andere boeg gegooid. Het is nog niet geheel wat je wil. Maar door te spelen met de "match" formule moet je er wel geraken.

 

Laat je ook even hoe de oplossing zich gedraagt bij je 10000-en records.

 

 

Koen

Matching.fp7

  • 0
Posted

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

  • 0
Posted

Hartelijk dank aan de milde posters!

Ik zal wel enige studie- en experimenteertijd nodig hebben eer ik hier allemaal op kan antwoorden. Maar dat komt, beloofd!!

 

Nogmaals dank en tot binnenkort!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...