CX_OBJECT_DICTIONARY...::GetObjectsWithDLDistance
Beschreibung:
Diese Methode bezieht sich auf die Damerau-Levinshtein-Distanz. Für eine Beschreibung dieser siehe CX_STRING::DLDistance.
Im Dictionary werden alle Schlüssel geprüft, ob diese einen Abstand zum Suchbegriff haben, welcher maximal der angegebenen Distanz entspricht. Die zu diesen Schlüsseln gehörenden Objekte werden zusammen mit den jeweils berechneten Distanzen zurückgegeben. Hierfür wird eine Collection angelegt, in die Objekte vom spezifizerten Typ eingefügt werden. In diesen Objekten wird in den angegebenen dynamischen Datenfeldern jeweils die Distanz und das Objekt selbst hinterlegt.
Falls diese Methode auf einem mehrsprachigen Dictionary aufgerufen wird, dann werden nur Schlüssel in der aktuellen Sprache mit dem Suchbegriff verglichen.
Werden die Distanzen selbst nicht benötigt, so ist die Methode CX_OBJECT_DICTIONARY...::QueryByDLDistance zu nutzen.
Bei einem Dictionary mit vielen Einträgen kann je nach Anwendungsfall CX_OBJECT_DICTIONARY...::GetObjectsWithDLDistanceWithBKTree zu eine bessere Performance führen.
Code-Beispiel:
"level" "masterObject" CX_CONTAINER 3 "Suchbegriff" dictionary Call(GetObjectsWithDLDistance) -> coll
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_OBJECT_DICTIONARY... | Dictionary |
Top-1 | STRING | Suchbegriff | |
Top-2 | INTEGER | Maximal zulässige Distanz | |
Top-3 | INTEGER | Klassenkonstante, in welche die Ergebnisse eingeführt werden sollen. | |
Top-4 | STRING | Name eines dynamischen Datenfelds, um die Objekte selbst zu speichern | |
Top-5 | STRING | Name eines dynamischen Datenfelds, um die Distanzen der Ergebnisse zu speichern | |
Stack(Out) | Top | COLLECTION | Objekte vom spezifizierten Typ mit den gefundenen Objekten und den zugehörigen Distanzen in den angegebenen dynamischen Datenfeldern. |