Florian Bluhm: contains ergebnisse falsch

ich habe eine sql Abfrage aus eine MS SQL datenbank programmiert:
SELECT ID from CaProducts where CONTAINS(value,'" & suchwort & "')

nun liefert mir diese Abfrage aber zu VIELE ergebnisse, suche ich z.B. nach Gotteslob, so liefert sie mir auch alle felder die "Gottes" enthalten. Das Gleiche bei Glaubensvermittlung. Ich bekomme dann auch alle Felder die mit "Glaubens" anfangen.

Ich dachte dies wäre eine FREETEXT Eigenschaft, mit Silbenerkennung und damit unpräzisen Ergebnissen. Ich möchte gerne exakte ergebnisse.

  1. Hallo,

    wieso schreibst Du nicht:

    "SELECT ID from CaProducts WHERE Feldname='Suchwort'" ?

    1. Die Abfrage geht auf eine Volltexttabelle mit 65000 Einträgen. Bei einem Volltextindex muss ich Contains oder Freetext verwenden.
      Außerdem benötige ich auch die Möglichkeit auf Zellenteile zuzugreifen, sprich ich gebe "Wort" ein und bekomme auch Einträge die "Wort und Antwort" enthalten. Dazu müsste ich dann mit Like %'xyz'% arbeiten und das wäre quälend langsam. Also komme ich um den FTK nicht herum.

    2. hi

      wieso schreibst Du nicht:

      "SELECT ID from CaProducts WHERE Feldname='Suchwort'" ?

      Weil er höchstwahrscheinlich nach einer Teilzeichenkette suchen möchte, und nicht nach genaue Entsprechung wie in deinem Statement. Wenn ohne contains, dann wenigstens so:

      select * from carproducts where feldname like '%suchwort%'

      Wenn Du noch schnelle suchen möchtest, dann machst Du in etwa so:

      select * from tabelle where match (feldname) against ('$keyword')

      Gruss Lisa