Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: LUSBernd am 21.05.07 - 10:46:26

Titel: Mehrere Suchbegriffe bei ftsearch
Beitrag von: LUSBernd am 21.05.07 - 10:46:26
Hallo,

noch einmal Danke bei der Hilfe mit meiner ftsearch.  ;D Nun habe ich allerdings noch ein Kleinigkeit.

Es gibt ja diese "normale" Volltextsuche in der ich volgendermaßen suchen kann:

"Suchbegriff1" AND "Suchbegriff2"

und ein Ergebnis bekomme. Nun habe ich ja diese Suche als Ftsearch in einen Button erfolgreich implementiert. Es funktioniert auch. Aber ich kann nicht mehrere Suchbegriffe verwenden. Habe mal ein bisschen im Netz und in Büchern gelesen, in denen es heißt, es wäre die gleiche Suchfunktion. Darum würde ich schon gerne wissen, was ich falsch mache!

Viele Grüße
Titel: Re: Mehrere Suchbegriffe bei ftsearch
Beitrag von: Glombi am 21.05.07 - 10:49:57
query = |"Suchbegriff1" AND "Suchbegriff2"|

geht nicht?
Titel: Re: Mehrere Suchbegriffe bei ftsearch
Beitrag von: LUSBernd am 21.05.07 - 11:22:56
also so sieht unsere abfrage jetzt aus. i etwa. ein bischen haben wir noch dran gefeilt. überflüssiges raus und so. aber 95% stimmen überein.

und leider geht es nicht!!! warum ist die frage aller fragen. jedes forum und jede info seite sagen es muss gehen. auch das buch " anwendungsentwicklung unter lotus notes domino 6.5" sagt es muss gehen.



hier die abfrage:

Sub Click(Source As Button)
   
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim news As NotesNewsletter
   Dim uiws As New NotesUIWorkspace   
   Dim view As NotesView
   Dim collection As NotesDocumentCollection
   Dim vc As NotesViewEntryCollection
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set db = session.getdatabase ("", "jacobi/Kontakte.nsf", True)
   Set view = db.getView ("Kontakte Namen")
   
  REM Update full-text index
   If Not db.IsFTIndexed Then
      Call db.UpdateFTIndex(True)
   End If
   
  REM Get query and put in quotes
   query$ = Inputbox("Suchbegriff eingeben (Kontakte)", "Query")
   If query$ = "" Then Exit Sub
   query$ = """" & query$ & """"
  REM Get 25 most relevant documents that match the query
   Set dc= db.AllDocuments
   Call dc.FTSearch(query$, 0)
  REM Send newsletter to yourself
   If dc.Count > 0 Then
   ' In einen Ordner kopieren (wird angelegt, falls nicht vorhanden)
      
      Set doc = dc.GetFirstDocument
      While Not ( doc Is Nothing )
         Call doc.PutInFolder( "Auswahl" )
         Set doc = dc.GetNextDocument( doc )
      Wend
   ' Folder anzeigen
      Set view = db.getview("Auswahl")
      Set vc = View.AllEntries
   ' Auswahl anzeigen
      
      picklist = ws.PickListStrings(PICKLIST_CUSTOM, _
      True,_
      "",_
      "jacobi/Kontakte",_
      "Auswahl",_
      "Bitte wählen Sie einen Kontakt",_
      "Bitte auswählen",_
      1)
   ' Feld auswählen
      REM Set uidoc = uiws.CurrentDocument   
      Set uidoc = ws.CurrentDocument
      Call uidoc.FieldSetText( "empf", picklist(0) )
      REM Call uidoc.FieldSetText( empf, " " )
   ' Auswahl löschen
      Call vc.removeallfromfolder("Auswahl")
   Else
      Messagebox "Keine Kontakte gefunden" , , "Kontakte"
   End If
End Sub
Titel: Re: Mehrere Suchbegriffe bei ftsearch
Beitrag von: Glombi am 21.05.07 - 11:43:39
Da kannst folgendes mal versuchen:

dim inputstr as string

 inputstr = Inputbox("Suchbegriff eingeben (Kontakte)", "Query")
   If inputstr = "" Then Exit Sub
   query = | & inputstr & |

Andreas
Titel: Re: Mehrere Suchbegriffe bei ftsearch
Beitrag von: LUSBernd am 21.05.07 - 12:27:39
perfekt. so funktionier es.

stimmt schon.  habe mal irgendwo gelesen, dass dieses query$ häufiger mal probleme macht.

manchmal sind die lösungen so einfach, dass man das offensichtliche nicht sieht!!!

danke
Titel: Re: Mehrere Suchbegriffe bei ftsearch
Beitrag von: koehlerbv am 21.05.07 - 19:58:01
Der Fehler liegt in dieser Zeile:
Code
query$ = """" & query$ & """"

Wenn Du als Query eingibst:
Zitat
Hund AND Köter
so wird daraus ein weiterer String
""Hund AND Köter""

Das AND wird damit zum Bestandteil des Strings. Bei einer Eingabe von
Zitat
"Hund" AND "Köter"
sieht das Ergebnis nicht besser aus - Du verschluchst immer das AND und machst es zum Bestandteil des Suchstrings!

Wenn Du tatsächlich gelesen haben solltest, dass "dieses query$ häufiger mal probleme macht", so bist Du auf absolutem Blödsinn gestossen. "query$" ist ein vollkommen belangloser Variablenname, den Du genauso "TanteHilde" hättest nennen können.

Bernhard