Autor Thema: search mit \ und | im Suchstring bei Textlisten  (Gelesen 523 mal)

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 90
search mit \ und | im Suchstring bei Textlisten
« am: 20.03.24 - 10:45:32 »
Guten Morgen liebe Community,

ich stehe auf dem Schlauch.

Ich habe Notesdocumente, die in einem Feld mehrere Werte als Textliste stehen haben, die einzelnen Einträge sehen ungefähr so aus  "abcdef\xyzde|Dumdidum"

Wenn ich bei

set dc = db.search({Form="Verzeichnis" & @IsMember("abcdef\xyzde|Dumdidum";FeldmitdenWerten)}, Nothing, 0)

eingebe,
bleibt meine DC bei 0 Elementen, obwohl er welche finden müsste.

Was übersehe ich?

Ich habe auch schon aus "abcdef\xyzde|Dumdidum"

"abcdef\\xyzde|Dumdidum"

und

"abcdef\\xyzde||Dumdidum" gemacht. Bleibt aber bei 0.

LG
Thorsten
Client -> Notesclient 8.5.3
Betriebssystem ->Windows 7
User-> Thorsten :)

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Antw:search mit \ und | im Suchstring bei Textlisten
« Antwort #1 am: 20.03.24 - 12:49:32 »
Hallo Thorsten,

du hast zwei Spezialfälle in deiner Abfrage: einen Escape-Character (Backslash) und einen Operator (Pipe).

Würdest du nur nach einem Begriff mit Backslash suchen wäre das Escapen des Escape-Characters korrekt, wie du schon selbst herausgefunden hast, also bla\\blubb findet dann bla\blubb.

Operatoren hingegen müssen anders behandelt werden wenn sie Bestandteil des Suchbegriffs sind. Hier muss dann der komplette Begriff in Anführungszeichen gesetzt werden. Die Anführungszeichen machen dann aber den doppelten Escape-Character wirkungslos, weil alles innerhalb der "" so wie es ist übernommen wird.

Um deine Ursprungsfrage zu beantworten: "abcdef\xyzde|Dumdidum" ist korrekt aber inklusive Anführungszeichen. Du musst also vor und nach dem Suchbegriff ein anderes Textbegrenzungszeichen statt " verwenden oder das gut in Variablen verpacken.

Ob das jetzt in allen Variationen der Notes- und Web-Syntax 1:1 funktioniert musst du mit deinen Begriffen mal selbst testen. Bei mir funktioniert das wie eben beschrieben, siehe Screenshot. Jede andere Schreibweise liefert entweder Null oder zu viele Ergebnisse, weil der Pipe dann als ODER-Suche angesehen wird.

Welche Operatoren es gibt, wie auch die Auslegung der Spezialfälle, steht in der Hilfe, hab auf die Schnelle nur die Beschreibung aus der 9er Hilfe verlinkt. https://help.hcltechsw.com/notes/9.0.1/sch_refine_query_r.html#sch_refine_query_r__N10029

Der Screenshot stammt von einem 14er Client mit einer FT-indizierten DB auf einem 9er Server.

HTH
Carsten

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Antw:search mit \ und | im Suchstring bei Textlisten
« Antwort #2 am: 20.03.24 - 13:10:22 »
Doch noch ein Nachtrag: ich weiß, dass du keine FT-Suche verwendet hast, die Problematik mit Escape-Character und Operator dürfte aber dennoch, meiner Meinung nach, das Problem verursachen.

HTH
Carsten

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz