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
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.
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ührtDaten
Samsung Samsung s5
Und dann war die Suche in der Tat sehr schnell mit der unteren Abfrage,
%Vor%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.
Tags und Links android sqlite full-text-search fts4