Wie implementieren Sie eine Volltextsuche über mehrere Spalten in SQL Server?

Ich versuche eine Volltextsuche in zwei Spalten zu implementieren, für die ich eine Ansicht erstellt habe: VendorName, ProductName. Ich habe den Volltextindex usw. funktioniert, aber die tatsächliche Abfrage ist das, was einige Probleme für mich verursacht.

Ich möchte, dass Benutzer in der Lage sind, einige Standardsuchkonventionen zu verwenden, UND ODER NICHT und Gruppieren von Begriffen nach (), was in Ordnung ist, aber ich möchte die Suche auf beide Spalten anwenden, zum Beispiel, wenn ich eine Abfrage wie ausführen möchte :

SELECT * FROM vw_Search 
WHERE CONTAINS((VendorName, ProductName), "Apple AND iTunes")

Es scheint, als würde die Abfrage für jede Spalte einzeln angewendet, d. H. Der Name des Anbieters für beide Begriffe und der Name des Produkts für beide Begriffe überprüft, die nicht übereinstimmen, es sei denn, der Anbieter wurde "Apple iTunes" genannt.

Wenn ich die Abfrage ändere in:

SELECT * FROM vw_Search 
WHERE CONTAINS(VendorName, "Apple OR iTunes") 
AND CONTAINS(ProductName, "Apple OR iTunes")

dann funktioniert es, unterbricht aber andere Suchanfragen (z. B. die Suche nach nur Apfel), und vom Benutzer, der die Abfrage schreibt, macht es wenig Sinn, da das, was er wahrscheinlich schreibt, UND ist, aber ein ODER erforderlich ist, um zu funktionieren.

Was ich möchte, ist, dass es zurückgibt, wenn zwischen den beiden der Suchbegriff gültig ist, sodass er zum Beispiel allen Anbietern mit dem Namen apple mit einem Produktnamen itunes entspricht.

Sollte ich in der Ansicht ein separates Feld erstellen, das die Felder "Hersteller" und "Produkt" verkettet und die erste Abfrage für dieses neue Feld ausführt, oder fehlt mir etwas?

Darüber hinaus würde jemand eine vorhandene Methode zur Validierung der Abfragen kennen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage