Ich habe bereits integrierte Suche basierend auf der offiziellen Android-Dokumentation und Ich verwende das folgende SQLite-Schema und Abfrage:
%Vor%Ich frage mich, wie kann ich es verlängern? um Folgendes zu ermöglichen:
Sagen Sie, dass ich einige Elemente benannt habe:
Wenn der Benutzer blah
in das Suchfeld eingibt, wird in den Suchergebnissen Folgendes angezeigt:
my
mfi
fan item
, fanit
, fit
it
, item
, im
, itm
Die Ergebnisse sollten nach der Qualität der Übereinstimmung sortiert werden. Wenn die Buchstaben weiter entfernt sind, sollten sie niedriger als eine exakte Übereinstimmung sein, wie für mfi
: "My Fancy Item" sollte als letzter und "MFI dingy "sollte zuerst rangieren (wenn es einen solchen Gegenstand gab).
Hinweis: Mein min SDK ist API Level 10, was bedeutet, dass es SQLite funktionieren muss 3.6.22 .
Ähnliche Funktionen finden Sie hauptsächlich in IDEs:
SQLites FTS ermöglicht Suchvorgänge nur nach ganzen Wörtern oder nach Wortpräfixen.
Es gibt keine integrierte Funktionalität für unscharfe Suchen wie diese. (Und mit der Android-Datenbank-API können Sie keine benutzerdefinierten virtuellen Tabellenimplementierungen hinzufügen.)
Ich entspannte meine Kriterien, um alle Wortanfänge zu suchen:
%Vor%es funktioniert ziemlich gut. Nicht typo-resistent, aber es fühlt sich natürlich an, wenn ich es benutze.
Tags und Links android sqlite search full-text-search fts3