Suche in mehreren Spalten mit der Volltextsuche (FTS) mit mehreren Token mit OR-Operator

8

Ich benutze FTS für die Abfrage meiner Datenbank zur Erhöhung der Suchgeschwindigkeit, da ich auch in der Textbeschreibung suchen muss,

Wenn ich versuche, eine einzelne Spalte abzufragen, funktioniert das wie unten

%Vor%

Und auch

%Vor%

Also, über beide Abfragen gibt mir das erwartete Ergebnis, aber wenn ich versuche, beide Abfragen mit OR operator zu kombinieren, gibt es mir kein Ergebnis

%Vor%

Ich möchte also wissen, ob ich hier etwas falsch mache, während ich den OR Operator für die Suche in mehreren Spalten verwende

AKTUALISIEREN

Die folgende Abfrage funktioniert einwandfrei, erfüllt aber nicht meine Anforderung

%Vor%

Sie können sehen, dass, wenn ich die mehreren Token entferne, es auch mit OR operator gut funktioniert.

    
Lalit Poptani 24.09.2014, 08:37
quelle

2 Antworten

0

Also, ich habe die Lösung endlich gefunden,

Anstatt alle Spalten einzeln zu durchsuchen, habe ich eine einzelne Spalte in der Datenbank erstellt, die Daten für die erforderlichen Spalten enthält, in denen gesucht werden soll,

Beispiel

Ich muss in prod_name & amp; prod_short_desc columns, also habe ich eine Spalte namens data in der Datenbank erstellt und die Werte von prod_name & amp; prod_short_desc , dann schaute nur in data field arbeitete wie ein Charme

Produktname | prod_short_desc

%Vor%

Also, jetzt habe ich die Daten der beiden Spalten in eine mit Leerzeichen als Trennzeichen

zusammengeführt

Daten

Samsung Samsung s5

Und dann war die Suche in der Tat sehr schnell mit der unteren Abfrage,

%Vor%     
Lalit Poptani 02.01.2015, 14:59
quelle
1

SQLites FTS unterstützt nur einfache Präfix-Suchen.

Eine Abfrage wie prod_short_desc:samsung*s5* besteht aus zwei Ausdrücken, prod_short_desc:samsung* und s5* , die sich genau so verhalten, als hätten Sie prod_short_desc:samsung* s5* geschrieben.

Wenn Sie SQLite für die erweiterte Abfragesyntax kompiliert haben, können Sie eine Abfrage verwenden wie:

%Vor%

Wenn Sie SQLite für die Standardabfragesyntax kompiliert haben, können Sie hierfür keine einzige Abfrage verwenden, da die Priorität des OR-Operators zu hoch ist und nicht in Klammern geändert werden kann.

    
CL. 24.09.2014 16:11
quelle