Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gemischte Abfragen für den Volltextindex

Ich glaube nicht, dass Sie irgendwelche Probleme haben sollten, wenn ich Ihre Frage richtig verstehe. Ich kombiniere oft Volltext und B-Tree mit großartigen Ergebnissen. Wenn die Volltextsuche durchgeführt wird, betrachtet sie jeden durch Trennzeichen getrennten "Begriff" als Index, genau wie eine indizierte Spalte mit nur einem Begriff (geben oder nehmen Sie einige SQL-Statistiken). In jedem Fall muss SQL seinen Ausführungspfad herausfinden. Die Volltextsuche bevorzugt nicht den Vergleich von Integer-/Datumswerten - eher für den Vergleich von Zeichenfolgen mit begrenzten Daten.

Ich könnte mir vorstellen, dass Sie die Effizienz des B-Tree-Konzepts weiterhin zu Ihrem Vorteil nutzen möchten. Die Suche im Volltextkatalogindex scheint mir eine viel umständlichere Suche zu sein, obwohl sie in Situationen, in denen "LIKE" zum Analysieren/Vergleichen von Zeichenfolgen verwendet wird, viel vorteilhafter ist.

Was ich mache ist:

 SELECT * FROM MyTable
  WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
    AND start_date > ###;

(Informationen zur Syntax finden Sie in diesem msdn-Artikel )

P.S. Deaktivieren Sie bei der Volltextindizierung ganzzahliger Daten die Stoppliste, damit diese Werte bei der Katalogindizierung nicht ignoriert werden.

Hoffe, irgendetwas davon hilft! (Niemand hat geantwortet, also dachte ich, ich gebe meine Erfahrung weiter)