none
SQL Suchfunktion fehlerhaft RRS feed

  • Frage

  • Hallo,

    für eine Suchfunktion in meiner Datenbankanwendung habe ich folgende Prozedur angelegt:

    ALTER proc [dbo].[spKundensuche]
    @strSuche nvarchar(50) = '%',
    @intType int,
    @intVertrieb int
    
    
    
    AS
    
    Set @strSuche = '"' + @strSuche + '*"'
    
     IF isnull(@intVertrieb,0) = 0
     Begin
    
    SELECT        TOP 100 dbo.Kundenliste.ID_Kunde, dbo.Kundenliste.Firmenname, dbo.Kundenliste.PLZ, dbo.Kundenliste.Ort, dbo.Kundenliste.Anrede, dbo.Kundenliste.Nachname, dbo.Kundenliste.Vorname, 
                             dbo.Kundenliste.Notizen, dbo.Kundenliste.Type, dbo.Kundenliste.IrisSubType, dbo.tbl_Typen.TypName, dbo.Kundenliste.VertriebsID, dbo.Kundenliste.Titel
    FROM            dbo.Kundenliste LEFT OUTER JOIN
                             dbo.tbl_Typen ON dbo.Kundenliste.IrisSubType = dbo.tbl_Typen.SubTyp AND dbo.Kundenliste.Type = dbo.tbl_Typen.Typ Inner Join CONTAINSTABLE(Kundenliste, *, @strSuche) as Key_tBL ON Kundenliste.id_Kunde = key_tbl.[Key]
    WHERE        Kundenliste.Type = @intType
    ORDER BY key_tbl.rank desc

    Leider funktioniert die Suche aber nicht vernünftig.

    Suche ich z.B. nach der 'Agentur für Arbeit' so erhalte ich Ergebnisse unter dem Suchbegriff 'Agentur'. Sobald ich aber suche nach 'Agentur für' wird gar nix mehr angezeigt. Dann habe ich eine Firma Namens 'Oh, my Music' Suche ich nach 'Oh,' wird mir u.a. 'Aldi Einkauf GmbH & Co. OHG' angezeigt, nicht aber die Firma Oh, my Music!. Suche ich nach 'Oh, my' wird gar nix mehr angezeigt. 

    Solche Beispiele könnte ich ewig aufzählen. Ich bin bei weitem kein Experte was SQL angeht und freue mich, dass ich überhaupt eine Suche hinbekommen habe, aber es ist natürlich nicht toll, wenn sie nicht richtig funktioniert. Ich hoffe daher, dass jemand hier helfen kann.

    In der Tabelle 'Kundenliste' sind die entsprechenden Spalten für den Volltextindex aktiviert. Sprache für Wörtererkennung steht auf Deutsch und die Statistische Semantik ist aktiviert. Weiterhin habe ich eine Datenbank namens 'semanticsdb'. Diese scheint allerdings leer zu sein, zumindest zeigen die Ordner in meinem Managementstudio keinen Inhalt an.

    So, genug Text.. Ich hoffe es kann jemand helfen.

    Lieben Dank schon mal.

    datekk


    .::datekk::.


    • Bearbeitet datekk2 Freitag, 18. Januar 2019 15:08
    Freitag, 18. Januar 2019 09:01

Antworten

  • Dann habe ich eine Firma Namens 'Oh, my Music! publisher UG' Suche ich nach 'Oh,' wird mir u.a. 'Aldi Einkauf GmbH & Co. OHG' angezeigt, nicht aber die Firma Oh, my Music!. Suche ich nach 'Oh, my' wird gar nix mehr angezeigt

    Hallo,

    beim SQL Server Volltextindex gibt es bereits im Standard eine sogenannte Stopliste mit "Noise Words", die nicht indiziert werden sollen, wie z.B. "der/die/das", weil das im jeden Satz vorkommt; "Oh" ist auch so ein Noise Word, genau wie für. Die sind entsprechend nicht indiziert und man kann danach nicht suchen. Kannst Du mit sys.dm_fts_parser (Transact-SQL) überpüfen:

    Die Verwendung der Stoplist kann man im FTS Index abstellen. Siehe auch Configure and Manage Stopwords and Stoplists for Full-Text Search


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Freitag, 18. Januar 2019 09:53

Alle Antworten

  • Dann habe ich eine Firma Namens 'Oh, my Music! publisher UG' Suche ich nach 'Oh,' wird mir u.a. 'Aldi Einkauf GmbH & Co. OHG' angezeigt, nicht aber die Firma Oh, my Music!. Suche ich nach 'Oh, my' wird gar nix mehr angezeigt

    Hallo,

    beim SQL Server Volltextindex gibt es bereits im Standard eine sogenannte Stopliste mit "Noise Words", die nicht indiziert werden sollen, wie z.B. "der/die/das", weil das im jeden Satz vorkommt; "Oh" ist auch so ein Noise Word, genau wie für. Die sind entsprechend nicht indiziert und man kann danach nicht suchen. Kannst Du mit sys.dm_fts_parser (Transact-SQL) überpüfen:

    Die Verwendung der Stoplist kann man im FTS Index abstellen. Siehe auch Configure and Manage Stopwords and Stoplists for Full-Text Search


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Freitag, 18. Januar 2019 09:53
  • Tausend Dank. Es funktioniert :) Klasse!!

    Schönes Wochenende.

    datekk


    .::datekk::.

    Freitag, 18. Januar 2019 15:08