4D v16.3

GET TEXT KEYWORDS

Home

 
4D v16.3
GET TEXT KEYWORDS

GET TEXT KEYWORDS 


 

GET TEXT KEYWORDS ( Text ; arrKeywords {; *} ) 
Parameter Typ   Beschreibung
Text  Text in Originaltext
arrKeywords  Array Text in Array mit Schlüsselwörtern
Operator in Mit Stern: einmalige Wörter

Der Befehl GET TEXT KEYWORDS zerteilt alle Parameter Text in einzelne Wörter und erstellt für jedes Wort einen Eintrag im Array arrKeywords.

4D verwendet zum Aufteilen von Text in einzelne Wörter denselben Algorithmus wie zum Erstellen von Volltext-Index. Er basiert auf der ICU Library. Weitere Informationen dazu finden Sie unter folgender Adresse: http://userguide.icu-project.org/boundaryanalysis

Hinweis: Auf vielfachen Wunsch haben wir für Französisch und Italienisch eine Ausnahme eingeführt: Folgt auf den Apostroph (') ein Vokal oder der Buchstabe "h", gilt er als Worttrenner. Zum Beispiel: die Zeichenketten "L'homme" oder "l'arbre" werden geteilt in "L’"+"homme" und "l'"+"arbre".

Der verwendete Algorithmus variiert je nachdem, ob in den Datenbank-Eigenschaften die Option Nur nicht alphanumerische Zeichen als Schlüsselwörter ansehen markiert ist (siehe Abschnitt Seite Datenbank/ Datenspeicherung im Handbuch 4D Designmodus).

Im Parameter Text übergeben Sie den Originaltext, der in Wörter aufgeteilt werden soll. Bei formatiertem Text werden Stil-Tags ignoriert.

Der Befehl füllt das Text Array arrKeywords mit den aus dem Text entnommenen Wörtern.

Übergeben Sie den optionalen Parameter *, speichert der Befehl jedes unterschiedliche Schlüsselwort nur einmal in arrKeywords. Dieser Parameter ist standardmäßig nicht angegeben, d.h. alle aus dem Text entnommenen Wörter werden im Array gespeichert, selbst wenn sie mehrmals vorkommen.

Dieser Befehl bietet Ihnen einen einfachen Weg, nach Datensätzen mit umfangreichem Text zu suchen, und garantiert, dass dieselben Schlüsselwörter wie in 4D verwendet werden. Nehmen wir beispielsweise den Text "10.000 Hans-Peter BC45". Wird dieser Text in die Schlüsselwörter "10.000" + "Hans" + "Peter" + "BC45" aufgeteilt, enthält das Array 4 Elemente. Dieses Array lässt sich mit dem Operator % leicht per Programmierung durchlaufen, um die Datensätze zu finden, die eins oder mehrere dieser Schlüsselwörter enthalten (siehe Beispiele).

In einem Formular mit einem Suchbereich kann der Benutzer ein oder mehrere Wörter eingeben. Bestätigt er dieses Formular, suchen wir nach Datensätzen, in denen das Datenfeld MyField mindestens eins der vom Benutzer eingegebenen Wörter enthält. 

  // vSearch ist die Variable des Suchbereichs im Formular
 GET TEXT KEYWORDS(vSearch;arrSearch;*)
  //* falls der Benutzer das gleiche Wort mehr als einmal eingibt
 CREATE SET([MyTable];"Totalfound")
 $n:=Size of array(arrSearch)
 For($i;1;$n)
    QUERY([MyTable];[MyTable]MyField % arrSearch{$i})
    CREATE SET(([MyTable];"found")
    UNION("Totalfound";"found";"Totalfound")
 End for
 USE SET("Totalfound")

Im gleichen Formular wie oben suchen wir nach Datensätzen, wo das Feld MyField alle vom Benutzer eingegebenen Wörter enthält.

  // vSearch ist die Variable des Suchbereichs im Formular
 GET TEXT KEYWORDS(vSearch;arrSearch;*)
 $n:=Size of array(arrSearch)
 QUERY([MyTable];[MyTable]MyField >=0;*)
  // Suche initialisieren = alle Datensätze
 For($i;1;$n)
    QUERY([MyTable];&;[MyTable]MyField % arrSearch{$i};*)
  // Kriterium hinzufügen
 End for
 QUERY([MyTable]//search

Wörter in einem Text zählen:

 GET TEXT KEYWORDS(vText;arrWords) // Alle Wörter
 $n:=Size of array(arrWords)
 GET TEXT KEYWORDS(vText;arrWords;*) // verschiedene Wörter
 $m:=Size of array(arrWords)
 ALERT("Dieser Text enthält "+String($n)+" separate Wörter unter "+String($m))

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String
Nummer: 1141

 
GESCHICHTE 

Erstellt: 4D v13

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)