it-swarm.com.de

Verwenden von Platzhaltern in LDAP-Suchfiltern / -abfragen

Ich habe nur sehr begrenzte Kenntnisse in AD- und LDAP-Abfragen, daher habe ich eine einfache Frage zur Verwendung von Platzhaltern.

Angenommen, es gibt ein Objekt mit einem displayName "ITSM - Problem Management".

Meine derzeitige Implementierung des Filters mit einem Platzhalter lautet wie folgt:

(displayName=SEARCHKEYWORD*)

Wenn ein Benutzer das Schlüsselwort "Problem" eingeben würde, könnte er das Objekt nicht finden, da es den ersten Teil des Namens benötigt, dh "ITSM -".

Ich möchte den Platzhalter an beiden Enden wie folgt implementieren:

(displayName=*SEARCHKEYWORD*)

Im Idealfall würde dies die Eingabe von "Problem" ermöglichen und nach "ITSM - Problem Management" suchen lassen. Aber der Platzhalter scheint nicht zu funktionieren, wenn Sie ihn am Anfang setzen. Als ich es ausprobiert habe, scheint es einfach aufzulegen und keine Ergebnisse zu liefern.

Irgendwelche Ideen oder Gedanken, wie ich das lösen kann? Jede Eingabe wäre sehr dankbar. Vielen Dank!

20
AnimaSola

Ein Filterargument mit einem nachgestellten * kann über eine Indexsuche fast augenblicklich ausgewertet werden. Ein führendes * impliziert eine sequentielle Suche durch den Index, also ist es O (N). Es wird ewig dauern.

Ich schlage vor, Sie überdenken die Anforderung.

26
user207421

Am besten antizipieren Sie Präfixe, also:

"(|(displayName=SEARCHKEY*)(displayName=ITSM - SEARCHKEY*)(displayName=alt prefix - SEARCHKEY*))"

Klobig, aber ich mache eine ähnliche Sache in meiner Organisation.

7
Rich

Dies sollte zumindest gemäß dem Artikel Suchfiltersyntax im MSDN-Netzwerk funktionieren.

Das "Auflegen", das Sie bemerkt haben, ist wahrscheinlich nur eine Verzögerung. Versuchen Sie, dieselbe Abfrage mit einem engeren Bereich auszuführen (z. B. die bestimmte Organisationseinheit, in der sich das Testobjekt befindet), da die Verarbeitung sehr lange dauern kann, wenn Sie sie für alle AD-Objekte ausführen.

Sie können auch versuchen, den Filter in zwei Teile zu teilen:

(|(displayName=*searchstring)(displayName=searchstring*))
1
ShaMan-H_Fel